<<script>>
/* ============================================================
0. LOAD ALL SCRIPT MODULES FROM THEIR PASSAGES
============================================================ */
[
"GAUGE MANAGEMENT", "PROBABILITY ENGINE", "INTERCEPTION & CLASH",
"ELIMINATION LOGIC", "AI STRATEGY", "DIALOGUE ENGINE",
"KANE_QUESTS", "PERKS_KEYS", "CONFIG & UX"
].forEach(function (name) {
try { eval(Story.get(name).text); }
catch (ex) { console.error("Module load failed: " + name, ex); }
});
/* Re-corruption tracking: when a girl's stage for a master is reduced
(Eternal Anchor, Great Purge, Scapegoat), the highest tier that master
ever reached on her is remembered. Re-conquering a tier she already
reached once plays the short _Generic scene instead of the full one. */
setup.noteReset = function (girl, masterIds) {
if (!girl) return;
if (!girl.resetFrom) girl.resetFrom = {};
(Array.isArray(masterIds) ? masterIds : [masterIds]).forEach(function (m) {
var s = girl.stages[m] || 0;
if (s > 0) girl.resetFrom[m] = Math.max(girl.resetFrom[m] || 0, s);
});
};
setup.sceneFor = function (masterName, girl, masterId) {
if (girl && girl.resetFrom && girl.resetFrom[masterId]
&& girl.stages[masterId] && girl.resetFrom[masterId] >= girl.stages[masterId]) {
return masterName + "_Generic";
}
return masterName + "_" + girl.name;
};
<</script>>
/* --- CORE GLOBALS --- */
<<set $gameDay to 1>>
<<set $activeTurn to "nathan">>
<<set $dayNames to ["", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]>>
<<set $failures to 0>>
/* --- ECLIPSE SYSTEM GLOBALS --- */
<<set $activeEclipse to {
theme: "None",
event: "None",
desc: "The veil is currently stable.",
rules: {},
jasperBastion: null,
nathanWeb: false,
joshPredation: false
}>>
/* --- TURN TRACKING --- */
<<set $extraActions to { nathan: 0, josh: 0, jasper: 0, caldwell: 0 }>>
<<set $actionsTaken to 0>>
<<set $stanceChosen to false>>
<<set $eclipseActionBonus to { nathan: 0, josh: 0, jasper: 0, caldwell: 0 }>>
/* --- MIRROR PENDING (Predator's Rush display flag) --- */
<<set $mirrorPending to null>>
/* --- APEX PREDATION + PANDEMIC LIMITS (daily/turn counters) --- */
<<set $joshStealUsedToday to false>>
<<set $joshLastStealVictim to null>>
<<set $pandemicChains to 0>>
/* --- VICES SETUP --- */
<<set $vices to {
"nathan": {
id: "nathan", name: "Nathan", weapon: "Love",
isEliminated: false, eliminatedBy: null, revengeAgainst: null, slaves: [], master: null, spiteNPCs: [], following: null,
grudge: null, grudgeTimer: 0,
gauge: 0, ultTimer: 0, ultType: null, ultTargetName: null,
scoutActive: false, jammedTimer: 0, silencedBy: null, silencedTimer: 0, revengeScented: false,
strategy: "Observing Campus", strategyTimer: 0, strategyTarget: null,
desc: "21, introspective literature junior who bonded with the ancient spirit of \"Love\" during a lonely woods walk before the eclipse. Medium height, lean build, dark brown hair, warm brown eyes, gentle boy-next-door face, casual hoodie-and-jeans style--unassuming and approachable. Thoughtful, kind-hearted, emotionally open with friends, still hurt by Josh's betrayal, idealistic about deep connections.<br><br><strong style='color:#00ffcc;'>Power: Love Obsession</strong>--turns any affection (platonic, familial, romantic) into manic possessive devotion."
},
"josh": {
id: "josh", name: "Josh", weapon: "Lust",
isEliminated: false, eliminatedBy: null, revengeAgainst: null, slaves: [], master: null, spiteNPCs: [], following: null,
grudge: null, grudgeTimer: 0,
gauge: 0, ultTimer: 0, ultType: null, ultTargetName: null,
predatorTarget: null, predatorMirrors: [],
scoutActive: false, jammedTimer: 0, silencedBy: null, silencedTimer: 0, revengeScented: false,
strategy: "Observing Campus", strategyTimer: 0, strategyTarget: null,
desc: "21, lanky business junior and mid-tier frat guy who sealed a pact with witch Selene for Lust power after the eclipse. Tall and wiry, short dark hair, intense eyes, cocky smirk hiding insecurity, fitted tees and athletic wear. Cocky, confrontational, deeply insecure, assumes everyone judges him, fiercely protective of family (Elsa & Lily), jealous of Nathan.<br><br><strong style='color:#ff0000;'>Power: Lust Overload</strong>--floods targets with uncontrollable arousal linked to him, creating addictive dependency."
},
"jasper": {
id: "jasper", name: "Jasper", weapon: "Trust",
isEliminated: false, eliminatedBy: null, revengeAgainst: null, spiteNPCs: [], following: null,
grudge: null, grudgeTimer: 0,
gauge: 0, ultTimer: 0, ultType: null, ultTargetName: null,
lastSilenceTarget: null,
scoutActive: false, jammedTimer: 0, silencedBy: null, silencedTimer: 0, revengeScented: false, slaves: [], master: null,
strategy: "Observing Campus", strategyTimer: 0, strategyTarget: null,
desc: "21, friendly but scarred black sociology junior living in Havenwood foster house, mentored by Thornfield who supplied alchemical perfumes/brews. Tall and lean (6'1\"), athletic build, dark skin, short-cropped hair, warm brown eyes, friendly smile, casual tees and jeans. Resilient, protective of foster \"family,\" deeply fears abandonment, quietly calculating when using power, justifies it as security.<br><br><strong style='color:#ffff00;'>Power: Trust Enslavement</strong>--scents/potions build unwavering trust into total obedience."
},
"caldwell": {
id: "caldwell", name: "Caldwell", weapon: "Will",
isEliminated: false, eliminatedBy: null, revengeAgainst: null, spiteNPCs: [], following: null,
grudge: null, grudgeTimer: 0,
gauge: 0, ultTimer: 0, ultType: null, ultTargetName: null,
channelUlt: null, channelTimer: 0, predatorTarget: null, predatorMirrors: [],
scoutActive: false, jammedTimer: 0, silencedBy: null, silencedTimer: 0, revengeScented: false, slaves: [], master: null,
strategy: "Observing Campus", strategyTimer: 0, strategyTarget: null,
desc: "43, tenured Philosophy professor and university security manager--teaches ethics/power courses, oversees campus security and surveillance. Bald shaved head, medium build, piercing dark eyes, short beard, stern intellectual face, professorial button-downs and blazers. Coldly intellectual, deeply twisted, authoritative, manipulative, patient, arrogant--sees people as subjects for control experiments.<br><br><strong style='color:#9c27b0;'>Power: Will Erosion</strong>--tech-assisted hypnosis (projectors, badges, videos) erodes willpower into pliable \"doll\" compliance."
}
}>>
/* --- EVENT FLAGS --- */
<<set $detentionTarget to null>>
<<set $omenData to null>>
<<set $gossipChain to null>>
<<set $groupAssignments to []>>
<<set $transferredNPCs to []>>
<<set $chainTarget to null>>
<<set $chainVisited to []>>
<<set $attemptLog to {}>>
<<set $repeatMalus to 0>>
<<set $interceptionNotice to null>>
<<set $isRandomTarget to false>>
<<set $followerID to null>>
<<set $sceneToLoad to "">>
<<set $anchorTarget to null>>
<<set $clashScenes to []>>
<<set $clashNavTarget to null>>
<<set $clashWinnerID to null>>
<<set $clashSavedActions to null>>
<<set $clashChainGirlId to null>>
<<set $clashSecondNPC to null>>
/* --- APEX PREDATION MULTI-STAGE SCENE QUEUE --- */
<<set $apexSceneQueue to []>>
<<set $apexSceneFinalStage to null>>
<<set $apexScenePassage to null>>
<<set $apexSceneNpcId to null>>
<<set $apexSavedActions to null>>
<<set $apexSavedChainTarget to null>>
/* --- TUTORIAL NAVIGATION --- */
<<set $tutorialReturnPassage to "Hub">>
/* --- KANE'S QUEST STATE --- */
<<set $kaneQuest to { active: false, npcId: null, startDay: 0, deadline: 0, winner: null, rewardClaimed: false, rewardGirlId: null, rewardScenePending: null }>>
<<set $shamelessFired to false>>
<<set $firstEclipseDone to false>>
<<set $kaneRewardWatched to false>>
<<set $kaneRewardReturnPassage to null>>
<<set $clashDisplayMode to "full">>
/* --- LOAD ROSTER --- */
<<include "Roster">>
/* --- RANDOMIZE KEYS & SPARES (new per run) --- */
<<run setup.assignRandomKeys()>>
/* --- LOAD SOCIAL MAP & KANE COMMENTS --- */
<<include "SocialMap_KaneComments">>
/* --- INITIALIZE AI STRATEGIES --- */
<<run setup.updateStrategy("nathan")>>
<<run setup.updateStrategy("josh")>>
<<run setup.updateStrategy("jasper")>>
<<run setup.updateStrategy("caldwell")>>
/* --- GALLERY: pristine roster snapshot + mode flag ---
The Gallery restores girls from this snapshot on every entry,
so archive viewing can never corrupt a real playthrough. */
<<set $galleryMode to false>>
<<run setup.pristineRoster = JSON.parse(JSON.stringify($roster))>>
<<set _currentPage to "back" + _currentPage>>
<<nobr>>
<<if _currentPage is not "Intro">>
<span class="navigation-link" onclick="History.back()">Back</span>
<<endif>>
<span class="navigation-link" onclick="History.forward()">Forward</span>
<</nobr>><<silently>>
<<set _hideList to ["Age Verification", "Midnight_Recap", "MinorEvent_Scene", "Eclipse_Event", "Finale_Intro", "Finale_Group1", "Finale_Group2", "Finale_Group3", "Finale_Group4", "Finale_Group5", "Finale_Group6", "Finale_Group7", "Finale_End", "Finale_MopUp", "Narrative_Config", "Victory_Screen", "Gallery", "Prologue", "Prologue2", "PrologueSelection", "NathanPrologue", "JoshPrologue", "JasperPrologue", "CaldwellPrologue", "ObserverPrologue", "Caldwell_Dossier", "Nathan_Dossier", "Jasper_Dossier", "Josh_Dossier"]>>
/* Finale passages deliberately discard normal turn variables. Hide
StoryCaption throughout the entire ending sequence rather than
trying to render stale/undefined master, target, and action data. */
<<set _isEndingPassage to passage().startsWith("Finale_")>>
<<set _isTutorialPassage to (passage() === "Tutorial" or passage().startsWith("Tutorial_"))>>
/* During the first tier of an Apex Predation sequence, the scene uses
a detached lower-tier display copy. Hide Board/Bios navigation so
the player cannot leave the protected queue mid-presentation. */
<<set _isApexSequence to ($apexSceneFinalStage !== null and $apexSceneFinalStage !== undefined)>>
<<set _isObserver to ($playerID === "observer")>>
<<set _activeMaster to ($vices[$activeTurn] || null)>>
<<set _mainMaster to (_isObserver or $playerID === null or $playerID === undefined or !$vices[$playerID] ? null : $vices[$playerID])>>
/* Only show the sidebar if we actually have a valid active master AND
(observer OR a valid player master). Gallery mode is a terminal archive:
hide Board/Bios/Tutorial navigation not only on Gallery itself, but also
throughout every scene launched from it. Scene footers already route
back through Gallery-aware Hub/EndTurnLogic. */
<<set _showSidebar to ($galleryMode !== true and $playerID !== null and $playerID !== undefined and !_isEndingPassage and !_isTutorialPassage and !_isApexSequence and !_hideList.includes(passage()) and _activeMaster !== null and (_isObserver or _mainMaster !== null))>>
<<if _showSidebar>>
/* Actions remaining for the active master (player or CPU) */
<<set _totMoves to (1 + $extraActions[$activeTurn])>>
<<set _remMoves to Math.max(0, _totMoves - $actionsTaken)>>
/* Target NPC for scene passages */
<<set _isGeneric to passage().endsWith("_Generic")>>
<<set _isSpecific to (passage().includes("_") and !passage().includes("Generic") and !passage().includes("Selection") and !passage().includes("CPU") and !passage().includes("Chain"))>>
<<set _p to (_isGeneric || _isSpecific ? $targetNPC : null)>>
<<set _pMax to (_p !== null ? Object.values(_p.stages).some(function(s) { return s >= 3; }) : false)>>
/* Dynamic colours (computed once, used via @style) */
<<set _wCol to (_activeMaster.weapon === "Love" ? "#00ffcc" : _activeMaster.weapon === "Lust" ? "#ff33cc" : _activeMaster.weapon === "Will" ? "#bb66ff" : "#ffff00")>>
<<set _shortCol to ($clashDisplayMode === "short" ? "#00ffcc" : "#666")>>
<<set _fullCol to ($clashDisplayMode === "full" ? "#00ffcc" : "#666")>>
<</if>>
<</silently>>\
<<if _showSidebar>>\
<div style="text-align:center; line-height:1.25;">\
<div style="background:#111; border:1px solid #00ffcc; padding:3px 6px; border-radius:4px;">\
<strong style="color:#00ffcc; font-size:1em; text-transform:uppercase;"><<if _isObserver>>👁 OBSERVER<<else>><<print _mainMaster.name>><</if>></strong>\
</div>\
<div style="margin-top:8px;">\
<img @src="'img/Player/' + _activeMaster.name + '.jpg'" style="width:110px; border:2px solid #00ffcc; border-radius:6px; display:block; margin:0 auto;">\
<div style="font-size:0.8em; color:#00ffcc; margin-top:2px;">Turn: <strong><<print _activeMaster.name>></strong></div>\
<div style="font-size:0.8em; color:#ffcc00; margin-top:1px;">Actions: <strong><<print _remMoves>></strong>/<<print _totMoves>></div>\
<div style="border:1px solid #444; background:#222; height:10px; border-radius:5px; overflow:hidden; width:110px; margin:4px auto 0;">\
<div @style="'width:' + _activeMaster.gauge + '%; height:100%; background:' + _wCol + ';'"></div>\
</div>\
<div style="font-size:0.7em; color:#888;">RESONANCE: <<print _activeMaster.gauge>>%</div>\
<<if _mainMaster !== null and _mainMaster.ultType !== null and _mainMaster.ultTimer gt 0>>\
<div style="font-size:0.7em; color:#ffcc00; margin-top:2px;">⚡ ULTIMATE ACTIVE: <<print (_mainMaster.ultType === "social_pandemic" ? "SOCIAL PANDEMIC" : _mainMaster.ultType === "predators_rush" ? "PREDATOR'S RUSH" : _mainMaster.ultType === "eclipse_silence" ? "ECLIPSE SILENCE" : "ETERNAL ANCHOR")>> (<<print _mainMaster.ultTimer>> turns)</div>\
<<elseif _mainMaster !== null and _mainMaster.id === "caldwell" and _mainMaster.channelUlt !== null and _mainMaster.channelTimer gt 0>>\
<div style="font-size:0.7em; color:#ffcc00; margin-top:2px;">⚡ ULTIMATE ACTIVE: <<print (_mainMaster.channelUlt === "predators_rush" ? "PREDATOR'S RUSH (via Josh)" : _mainMaster.channelUlt === "eclipse_silence" ? "ECLIPSE SILENCE (via Jasper)" : "SOCIAL PANDEMIC (via Nathan)")>> (<<print _mainMaster.channelTimer>> turns)</div>\
<</if>>\
</div>\
<!-- Strategy dedup (batch 41): the GRUDGE and HUNTING boxes were removed
here — the single STRATEGY line in the footer block below is the one
sidebar display. Full detail lives in the Hub's Active Effects panel
(grudge match, hunting rival) and the Board's per-vice flags. -->\
<<if _activeMaster.ultTimer gt 0>>\
<div style="background:gold; color:#000; font-size:0.7em; font-weight:bold; padding:4px; margin-top:4px; border:1px solid #000; line-height:1.15;">\
ULTIMATE ACTIVE:<br>\
<span style="font-size:1.1em;"><<print _activeMaster.ultType.replace("_", " ").toUpperCase()>></span>\
<<if _activeMaster.ultTargetName !== null>> <br>ON: <<print _activeMaster.ultTargetName.toUpperCase()>> <</if>>\
<br>(<<print _activeMaster.ultTimer>> DAYS LEFT)\
</div>\
<</if>>\
<<if $kaneQuest and $kaneQuest.active and setup.questGirl()>>\
<div style="background:#1a0a2a; color:#ffcc00; font-size:0.7em; font-weight:bold; padding:4px; margin-top:4px; border:1px solid #ffcc00; line-height:1.15;">\
📜 KANE'S QUEST:<br>\
<span style="font-size:1.1em;"><<print setup.questGirl().name.toUpperCase()>></span><br>\
FIRST TO FULLY CLAIM HER WINS\
</div>\
<</if>>\
<<if $playerID === "caldwell" and $vices.caldwell.channelUlt>>\
<div style="background:#1a0a2a; color:#9c27b0; font-size:0.7em; font-weight:bold; padding:4px; margin-top:4px; border:1px solid #9c27b0; line-height:1.15;">\
⚡ CHANNELING: <<print $vices.caldwell.channelUlt.replace("_", " ").toUpperCase()>><<if $vices.caldwell.ultTargetName neq null>> — <<print $vices.caldwell.ultTargetName.toUpperCase()>><</if>> (<<print $vices.caldwell.channelTimer>>T)\
</div>\
<</if>>\
<<set _rushOwner to null>>\
<<if $vices.josh.ultType === "predators_rush" and $vices.josh.predatorTarget>>\
<<set _rushOwner to "josh">>\
<<elseif $vices.caldwell.channelUlt === "predators_rush" and $vices.caldwell.predatorTarget>>\
<<set _rushOwner to "caldwell">>\
<</if>>\
<<if _rushOwner and ($vices[_rushOwner].predatorTarget === $playerID or _isObserver)>>\
<<set _rushTarget to $vices[_rushOwner].predatorTarget>>\
<<set _rushTimer to (_rushOwner === "josh" ? $vices.josh.ultTimer : $vices.caldwell.channelTimer)>>\
<div style="background:#4a002a; color:#ff33cc; font-size:0.7em; font-weight:bold; padding:4px; margin-top:4px; border:1px solid #ff33cc; line-height:1.15;">\
🪰 MARKED — PREDATOR'S RUSH:<br>\
<<print $vices[_rushOwner].name.toUpperCase()>> STEALS <<if _rushTarget === $playerID>>YOUR<<else>><<print $vices[_rushTarget].name.toUpperCase()>>’S<</if>> ELIGIBLE CONQUESTS<br>\
(<<print _rushTimer>> TURN<<if _rushTimer gt 1>>S<</if>> LEFT)\
</div>\
<</if>>\
<<if _p>>\
<div style="margin-top:8px; border-top:1px solid #333; padding-top:6px;">\
<img @src="'img/' + _p.name + '/' + (_pMax ? 'PortraitCorr.jpg' : 'Portrait.jpg')" style="width:110px; border:2px solid #ff66cc; border-radius:6px; display:block; margin:0 auto;">\
<div style="font-size:0.8em; color:#ff66cc; margin-top:2px;">Target: <strong><<print _p.name>></strong></div>\
</div>\
<</if>>\
<div style="font-size:0.75em; font-family:monospace; margin-top:6px; line-height:1.4;">\
DAY <<print $gameDay>> | <<print _activeMaster.weapon.toUpperCase()>><br>\
<span style="color:#ffaa00;">STRATEGY: <<print _activeMaster.strategy>>\
<<if _activeMaster.strategyTarget and $vices[_activeMaster.strategyTarget]>> (<<print $vices[_activeMaster.strategyTarget].name.toUpperCase()>>) <</if>>\
</span>\
</div>\
<hr style="border:0; border-top:1px solid #333; margin:8px 0;">\
<div style="font-size:0.7em; background:#0a0a0a; border:1px solid #333; border-radius:4px; padding:4px;">\
<div style="color:#888; margin-bottom:2px;">CLASH DISPLAY</div>\
<<radiobutton "$clashDisplayMode" "short" autocheck>> <span @style="'color:' + _shortCol + ';'">Short</span>\
| \
<<radiobutton "$clashDisplayMode" "full" autocheck>> <span @style="'color:' + _fullCol + ';'">Full Scenes</span>\
</div>\
<hr style="border:0; border-top:1px solid #333; margin:8px 0;">\
<div style="font-size:0.8em;">
[[BOARD|Board]] | [[BIOS|Characters]] |
<<link "TUTORIAL">>
<<set $tutorialReturnPassage to passage()>>
<<goto "Tutorial">>
<</link>>
</div>\
</div>\
<</if>>\<<nobr>>
<<silently>>
/* Helper function to format and color the keys based on Level 3 ownership */
<<set setup.formatKey = function(npcId) {
var npc = State.variables.roster.find(c => c.id === npcId);
if (npc && npc.owner !== null && npc.stages[npc.owner] >= 3) {
var color = "";
if (npc.owner === "nathan") color = "#ff66cc"; /* Pink */
else if (npc.owner === "josh") color = "#ff0000"; /* Red */
else if (npc.owner === "jasper") color = "#ffff00"; /* Yellow */
else if (npc.owner === "caldwell") color = "#9c27b0";/* Purple */
return "<span style='color: " + color + "; font-weight: bold; text-shadow: 0 0 5px " + color + ";'>" + npc.name.toUpperCase() + "</span>";
}
return "<span style='color: #eee;'>" + (npc ? npc.name.toUpperCase() : npcId.toUpperCase()) + "</span>";
}>>
<</silently>>
<style>
#passages {
max-width: 95% !important;
}
/* Force exactly 2 columns using flexbox */
.bio-grid-2col {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: 20px;
width: 100%;
margin: 0 auto;
}
.bio-card {
display: flex;
flex-direction: row;
width: calc(50% - 10px); /* Forces exactly 2 cards per line */
background: #111;
border: 1px solid #444;
padding: 15px;
border-radius: 12px;
box-shadow: 4px 4px 15px rgba(0,0,0,0.7);
box-sizing: border-box;
}
.bio-card img {
width: 130px;
height: 130px;
aspect-ratio: 1 / 1;
object-fit: cover;
object-position: top center;
border-radius: 8px;
margin-right: 15px;
flex-shrink: 0;
filter: grayscale(20%);
}
.bio-card:hover {
border-color: #00ffcc;
transform: translateY(-3px);
box-shadow: 0 0 20px rgba(0, 255, 204, 0.2);
}
.bio-tag {
display: inline-block;
font-size: 0.75em;
padding: 3px 8px;
border-radius: 4px;
font-weight: bold;
text-transform: uppercase;
}
.tag-key { background: #ffcc00; color: #000; }
.tag-backup { background: #00ffcc; color: #000; }
.tag-perk { background: #ff66cc; color: #000; }
/* Drops to 1 column on small screens so it stays readable */
@media (max-width: 1000px) {
.bio-card {
width: 100%;
}
}
</style>
<h1 style="text-align:center; font-size: 3em; color: #fff; text-shadow: 0 0 15px #00ffcc; margin-bottom: 40px;">THE DOSSIER</h1>
<h2 style="color: #00ffcc; border-bottom: 2px solid #00ffcc; padding-bottom: 10px; margin-bottom: 20px; text-transform: uppercase; letter-spacing: 2px;">The Catalysts (Masters)</h2>
<div class="bio-grid-2col">
<<for _vID range ["nathan", "josh", "jasper", "caldwell"]>>
<<set _v to $vices[_vID]>>
<div class="bio-card" style="border-color: #00ffcc; background: linear-gradient(145deg, #0a1a1a, #000);">
<img @src="'img/Player/' + _v.name + '.jpg'" style="border: 2px solid #00ffcc;">
<div style="flex: 1;">
<div style="margin: 0; color: #00ffcc; font-size: 1.8em; font-weight: bold;"><<print _v.name>></div>
<div style="background: rgba(0,0,0,0.5); padding: 10px; border-radius: 8px; margin: 10px 0; border: 1px solid #333;">
<div class="bio-tag tag-key">PRIMARY KEYS</div><br>
<div style="font-size: 0.9em; font-family: monospace; margin-top: 5px;">
<<print _v.keys.map(k => setup.formatKey(k)).join(" • ")>>
</div>
<div style="margin-top: 10px;">
<div class="bio-tag tag-backup">SPARE KEYS</div><br>
<div style="font-size: 0.9em; font-family: monospace; margin-top: 5px;">
<<print _v.backups.map(k => setup.formatKey(k)).join(" • ")>>
</div>
</div>
</div>
<div style="font-size: 0.85em; line-height: 1.4; color: #ddd; margin-top: 10px;">
<<if _v.desc>><<print _v.desc>><<else>>Channeling the power of _v.weapon to reshape the souls of Eldridge Hollow.<</if>>
</div>
</div>
</div>
<</for>>
</div>
<div style="margin: 60px 0;"></div>
<h2 style="color: #ff66cc; border-bottom: 2px solid #ff66cc; padding-bottom: 10px; margin-bottom: 20px; text-transform: uppercase; letter-spacing: 2px;">The Subjects (NPCs)</h2>
<div class="bio-grid-2col">
<<for _c range $roster>>
<div class="bio-card">
<<silently>>
<<set _isMax to Object.values(_c.stages).some(s => s >= 3)>>
<<set _img to (_isMax ? "PortraitCorr.jpg" : "Portrait.jpg")>>
<</silently>>
<img @src="'img/' + _c.name + '/' + _img" style="border: 2px solid #ff66cc;">
<div style="flex: 1;">
<div style="display: flex; justify-content: space-between; align-items: flex-start;">
<div style="margin: 0; color: #ff66cc; font-size: 1.6em; font-weight: bold;"><<print _c.name>></div>
<<if _c.keyTo !== null>>
<span class="bio-tag tag-key" style="font-size: 0.65em;">Key: <<print $vices[_c.keyTo].name>></span>
<</if>>
</div>
<!-- TRAIT SECTION -->
<div style="margin: 10px 0;">
<<for _t range _c.traits>>
<span class="bio-tag" style="background: #333; color: #00ffcc; border: 1px solid #00ffcc; margin-right: 5px; margin-bottom: 5px; font-size: 0.65em;"><<print _t>></span>
<</for>>
<<if setup.getPerkInfo(_c.id)>>
<span class="bio-tag tag-perk" style="font-size: 0.65em;" title="<<print setup.getPerkInfo(_c.id).blurb>>">
<<print setup.getPerkInfo(_c.id).icon>> <<print setup.getPerkInfo(_c.id).name>>
</span>
<</if>>
<<if _c.imprint>>
<span class="bio-tag" style="background: #200; color: #f00; border: 1px solid #f00; font-size: 0.65em;">Imprinted: <<print $vices[_c.imprint].name>></span>
<</if>>
</div>
<div style="font-size: 0.85em; line-height: 1.3; color: #ccc; margin: 10px 0; min-height: 50px;">
<<print _c.desc>>
</div>
<div style="font-family: monospace; font-size: 0.75em; color: #888; background: #000; padding: 8px; border-radius: 4px; display: grid; grid-template-columns: 1fr 1fr; gap: 5px; border: 1px solid #222;">
<div>LOVE: <<print _c.weakness.love>></div>
<div>LUST: <<print _c.weakness.lust>></div>
<div>TRUST: <<print _c.weakness.trust>></div>
<div>WILL: <<print _c.weakness.will>></div>
</div>
</div>
</div>
<</for>>
</div>
<div style="margin-top: 60px; text-align: center; padding-bottom: 80px;">
<span class="custom-link">[[RETURN TO OPERATIONS|Hub]]</span> | [[VIEW TACTICAL BOARD|Board]]
</div>
<</nobr>><<silently>>
<<set _hubRedirecting to false>>
/* Queue redirects are exclusive and must not fall through into Hub.
In particular, the temporary actionsTaken = 0 used between Apex
tiers must never expose a free action button. */
<<if $galleryMode>>
<<set _hubRedirecting to true>>
<<goto "Gallery">>
<<elseif $apexSceneQueue and $apexSceneQueue.length gt 0>>
<<set _hubRedirecting to true>>
<<goto "ApexPredation_SceneQueue">>
<<elseif $clashScenes and $clashScenes.length gt 0>>
<<set _hubRedirecting to true>>
<<goto "Clash_SceneQueue">>
<</if>>
<<if not _hubRedirecting>>
/* 1. TURN ASSIGNMENT & REPAIR LOGIC */
<<if not $activeTurn or $activeTurn === "none" or $vices[$activeTurn].isEliminated>>
<<if !$vices.nathan.isEliminated>> <<set $activeTurn to "nathan">>
<<elseif !$vices.josh.isEliminated>> <<set $activeTurn to "josh">>
<<elseif !$vices.jasper.isEliminated>><<set $activeTurn to "jasper">>
<<else>> <<set $activeTurn to "caldwell">>
<</if>>
<</if>>
/* 2. STANCE RESET — only at turn start */
<<if $actionsTaken === 0 and not $stanceChosen>>
<<set $vices[$activeTurn].following to null>>
<</if>>
<<set _activeVice to $vices[$activeTurn]>>
<<set _isYourTurn to ($activeTurn === $playerID)>>
/* 3. ACTION CALCULATIONS */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<set _remaining to (_totalMoves - $actionsTaken)>>
/* 4. MANIFESTATION AVAILABILITY (display only) */
<<set _hasStanceOption to (_activeVice.gauge gte 20 and _activeVice.following === null)>>
<<set _hasToolOptions to (_activeVice.gauge gte 50)>>
/* Unified ult cost: an ultimate uses one action, so the button hides
when no action remains this turn. */
<<set _hasUltOption to (_activeVice.gauge gte 100 and $actionsTaken lt (1 + $extraActions[$playerID]) and not ($playerID === "caldwell" and _activeVice.ultTimer gt 0))>>
<</if>>
<</silently>>\
<<if not _hubRedirecting>>\
<<nobr>>
/* ================= TOP STRIP ================= */
<div class="hub-strip">
<span class="hub-day">DAY $gameDay</span>
<span class="hub-turn"><<print _activeVice.name>>'S TURN</span>
<<if _activeVice.silencedBy !== null>>
<span class="hub-chip hub-chip-bad">ECLIPSED</span>
<<elseif _activeVice.jammedTimer gt 0>>
<span class="hub-chip hub-chip-bad">SIGNAL JAMMED</span>
<<elseif _isYourTurn>>
<span class="hub-chip hub-chip-good">YOUR MOVE</span>
<<else>>
<span class="hub-chip">RIVAL TURN</span>
<</if>>
<<if ["nathan", "josh", "jasper", "caldwell"].includes($playerID)>>
<span class="hub-guide">
<<link "📖 VICE GUIDE">>
<<script>>
var v = State.variables.vices[State.variables.playerID];
Dialog.setup("Vice Guide — " + v.name, "vice-guide");
Dialog.wiki(Story.get("Tutorial_" + v.name).processText());
Dialog.open();
<</script>>
<</link>>
</span>
<</if>>
</div>
<div id="hub">
/* ================= LEFT COLUMN — STATUS ================= */
<div id="hub-left">
<div class="hub-panel">
<h3>Master Status</h3>
<div class="hub-master">
<span class="hub-master-name"><<print _activeVice.name>> · <<print _activeVice.weapon>></span>
<span class="hub-gauge-num">RESONANCE <<print _activeVice.gauge>>%</span>
</div>
<div class="hub-gauge-wrap">
<div class="hub-gauge-fill" @style="'width: ' + _activeVice.gauge + '%; background: ' + (_activeVice.weapon === 'Love' ? '#00ffcc' : _activeVice.weapon === 'Lust' ? '#ff33cc' : _activeVice.weapon === 'Will' ? '#9c27b0' : '#ffff00')"></div>
</div>
<<if _activeVice.ultTimer gt 0>>
<<set _ultDisplay to _activeVice.ultType.replace("_", " ").toUpperCase()>>
<div class="hub-ult">ULTIMATE ACTIVE: <<print _ultDisplay>> · <<print _activeVice.ultTimer>> day<<if _activeVice.ultTimer gt 1>>s<</if>> remaining</div>
<</if>>
<<if $vices.caldwell.channelUlt and $playerID === "caldwell">>
<div class="hub-ult" style="color:#9c27b0; border-color:#9c27b0;">CHANNELING: <<print $vices.caldwell.channelUlt.replace("_", " ").toUpperCase()>><<if $vices.caldwell.ultTargetName neq null>> · ON: <<print $vices.caldwell.ultTargetName.toUpperCase()>><</if>> · <<print $vices.caldwell.channelTimer>> turn<<if $vices.caldwell.channelTimer gt 1>>s<</if>> left</div>
<</if>>
</div>
<<if $kaneQuest.active>>
<<set _questGirl to setup.questGirl()>>
<<if _questGirl>>
<div class="hub-panel hub-panel-quest">
<h3>Kane's Quest</h3>
<p class="hub-quest-line">📜 First Vice to fully claim <strong><<print _questGirl.name>></strong> wins the prize.</p>
<p class="hub-quest-progress">
<<if _questGirl.stages.nathan gt 0>>Nathan <<print _questGirl.stages.nathan>>/3 <</if>>
<<if _questGirl.stages.josh gt 0>>Josh <<print _questGirl.stages.josh>>/3 <</if>>
<<if _questGirl.stages.jasper gt 0>>Jasper <<print _questGirl.stages.jasper>>/3 <</if>>
<<if _questGirl.stages.caldwell gt 0>>Caldwell <<print _questGirl.stages.caldwell>>/3<</if>>
<<if _questGirl.stages.nathan is 0 and _questGirl.stages.josh is 0 and _questGirl.stages.jasper is 0 and _questGirl.stages.caldwell is 0>>
No one has claimed her yet.
<</if>>
</p>
</div>
<</if>>
<</if>>
/* Powers currently on the OTHER masters (batch 42) — the active
vice's own effects keep their dedicated lines inside the panel. */
<<set _powerFx to []>>
<<for _pvID range ["nathan", "josh", "jasper", "caldwell"]>>
<<if _pvID neq _activeVice.id and not $vices[_pvID].isEliminated>>
<<if $vices[_pvID].revengeScented>>
<<run _powerFx.push("⚠ " + $vices[_pvID].name.toUpperCase() + " — REVENGE SCENT: his next conquest is weakened")>>
<</if>>
<<if $vices[_pvID].silencedBy !== null>>
<<run _powerFx.push("🔇 " + $vices[_pvID].name.toUpperCase() + " — ECLIPSED: resonance silenced by " + $vices[$vices[_pvID].silencedBy].name.toUpperCase() + " (" + $vices[_pvID].silencedTimer + " turns)")>>
<</if>>
<<if $vices.josh.ultType === "predators_rush" and $vices.josh.predatorTarget === _pvID>>
<<run _powerFx.push("🩸 " + $vices[_pvID].name.toUpperCase() + " — MARKED: Josh's Predator's Rush steals his eligible conquests (" + $vices.josh.ultTimer + " turns)")>>
<</if>>
<<if $vices.caldwell.channelUlt === "predators_rush" and $vices.caldwell.predatorTarget === _pvID>>
<<run _powerFx.push("🩸 " + $vices[_pvID].name.toUpperCase() + " — MARKED: Caldwell's channeled Rush steals his eligible conquests (" + $vices.caldwell.channelTimer + " turns)")>>
<</if>>
<</if>>
<</for>>
<<if $vices.caldwell.channelUlt and $vices.caldwell.channelUlt neq "predators_rush" and _activeVice.id neq "caldwell" and not $vices.caldwell.isEliminated>>
<<run _powerFx.push("⚡ CALDWELL — CHANNELING " + $vices.caldwell.channelUlt.replace("_", " ").toUpperCase() + " (" + $vices.caldwell.channelTimer + " turns)")>>
<</if>>
<<if _activeVice.revengeScented or (_activeVice.revengeAgainst !== null and $vices[_activeVice.revengeAgainst]) or _activeVice.following !== null or _activeVice.strategy === "Grudge Match" or _powerFx.length gt 0>>
<div class="hub-panel">
<h3>Active Effects</h3>
<<if _activeVice.revengeScented>>
<p class="hub-flag hub-flag-bad">⚠ CURSED BY REVENGE SCENT — your next conquest is weakened</p>
<</if>>
<<if _activeVice.strategy === "Grudge Match" and _activeVice.strategyTarget !== null and $vices[_activeVice.strategyTarget]>>
<p class="hub-flag hub-flag-bad">⚔ GRUDGE MATCH: <<print $vices[_activeVice.strategyTarget].name.toUpperCase()>> — he is targeting his rival's girls for revenge</p>
<</if>>
<<if _activeVice.revengeAgainst !== null and $vices[_activeVice.revengeAgainst]>>
<p class="hub-flag hub-flag-bad">HUNTING RIVAL: <<print $vices[_activeVice.revengeAgainst].name.toUpperCase()>><<if _activeVice.strategy neq "Revenge">> (QUEUED — the current strategy takes priority)<</if>></p>
<</if>>
<<if _activeVice.following === "OWN_KEYS">>
<p class="hub-flag hub-flag-stance">👁 GUARDING DOMAIN — waiting in the dark; intercepts anyone who targets your Keys or Spare Keys</p>
<<elseif _activeVice.following !== null>>
<p class="hub-flag hub-flag-stance">👁 SHADOWING: <<print $vices[_activeVice.following].name.toUpperCase()>> — will intercept their next target</p>
<</if>>
<<for _pfx range _powerFx>>
<p class="hub-flag hub-flag-bad"><<print _pfx>></p>
<</for>>
</div>
<</if>>
</div>
/* ================= RIGHT COLUMN — ACTIONS ================= */
<div id="hub-right">
<<if _activeVice.silencedBy !== null>>
<div class="hub-panel hub-panel-state">
<h2 class="hub-state-title">[ECLIPSED]</h2>
<p><<print _activeVice.name>>'s resonance is being suppressed by <<print $vices[_activeVice.silencedBy].name>>.</p>
<p class="hub-note">Duration: <<print _activeVice.silencedTimer>> turns remaining</p>
[[Endure Silence|EndTurnLogic]]
</div>
<<elseif _activeVice.jammedTimer gt 0>>
<div class="hub-panel hub-panel-state">
<h2 class="hub-state-title">[SIGNAL SUPPRESSED]</h2>
<p>The Directorate has jammed your frequency for <<print _activeVice.jammedTimer>> more days.</p>
[[Wait for Signal|EndTurnLogic]]
</div>
<<elseif _isYourTurn>>
<<if _remaining gt 0>>
<div class="hub-panel hub-panel-main">
<h3>Actions Remaining: <<print _remaining>> / <<print _totalMoves>></h3>
[[TARGET SUBJECT|TargetSelection]]
/* Rest: forfeit every remaining action and end the turn for
+30% Resonance. Player-only — the AI never rests. */
<<link "REST — pass your turn (+30% Resonance)">>
<<run adjustGauge($playerID, 30)>>
<<set $actionsTaken to (1 + $extraActions[$playerID])>>
<<goto "EndTurnLogic">>
<</link>>
</div>
<<else>>
<div class="hub-panel hub-panel-main">
<h3>Actions Remaining: <<print _remaining>> / <<print _totalMoves>></h3>
<p class="hub-note">You have exhausted your influence for today.</p>
[[END TURN|EndTurnLogic]]
</div>
<</if>>
<div class="hub-panel hub-panel-manifest">
<h3>Vice Manifestations</h3>
<<if $playerID === "caldwell" and _activeVice.ultTimer gt 0>>
<p class="hub-note" style="color:#ffcc00;">Ultimate recharging (the Anchor and channeled ultimates share one slot) — <<print _activeVice.ultTimer>> day<<if _activeVice.ultTimer gt 1>>s<</if>> remain.</p>
<</if>>
<<if not (_hasStanceOption or _hasToolOptions or _hasUltOption)>>
<p class="hub-note">No manifestations available right now — stances unlock at 20% Resonance, tools at 50%, the Ultimate at 100%.</p>
<<else>>
<div class="hub-actions">
<<if _hasStanceOption>>
[[Shadowing & Guarding|FollowSelection]]
<</if>>
<<if _hasToolOptions>>
[[Vice Shield|ShieldSelection]]
[[Revenge Scent|RevengeSelection]]
<<link "Pulse Scout">>
<<run adjustGauge($playerID, -50)>>
<<set $vices[$playerID].scoutActive to true>>
<<goto "Hub">>
<</link>>
<</if>>
<<if _hasUltOption>>
<<if $playerID === "caldwell">>
/* Enter target selection directly. This keeps the
browser Back arrow connected to Hub and defers the
100% cost until an ANCHOR target is confirmed. */
[[UNLEASH ETERNAL ANCHOR|Caldwell_AnchorSelect]]
<<else>>
[[UNLEASH ULTIMATE|UltimateActivation]]
<</if>>
<</if>>
</div>
<p class="hub-cost">Costs: stance 20% · shield / scent / scout 50% · Ultimate 100% + 1 action</p>
<</if>>
</div>
<<else>>
<div class="hub-panel hub-panel-state">
<h3>Rival Turn</h3>
<p><<print _activeVice.name>> is channeling their Vice across the campus...</p>
[[OBSERVE MOVE|CPU_Process]]
</div>
<</if>>
</div>
</div>
<</nobr>>
<</if>><<set $playerID to "nathan">>
<h1 style="text-align:center; color:#00ffcc; text-shadow:0 0 10px #00ffcc; letter-spacing:2px;">NATHAN — LOVE AFTER TOTALITY</h1>
<p style="text-align:center; color:#888;">A dream beneath the returning sun</p>
<div class="narrative">
<h2 style="color:#00ffcc;">The Dream</h2>
Nathan remained beside the creek while the first bead of sunlight broke around the moon.
<img src="img/Player/Nathan.jpg">
Daylight returned to the forest by degrees. Birds had not started calling again. The corona's white fire still burned behind Nathan's viewing glasses, and Love rested behind his heart as a warm current he could neither dismiss nor fully understand.
He lowered himself against the trunk of a maple. His legs felt steady until he stopped using them. Then the tension left at once, and he sat with one hand pressed to the damp ground while his pulse slowed beneath his other palm.
The candle-flame symbol appeared behind his eyes.
<img src="img/Player/Spirit.jpg">
No candle stood beside him. No flame occupied the clearing. The image was only the shape his mind used for the silent presence.
It gave him no reassurance and no instruction.
Nathan blinked—and the forest disappeared.
He stood in the center of Eldridge Hollow University beneath a black sun.
The campus stretched around him in impossible completeness. The literature building, Havenwood, the administration tower, the gym, the observatory, and every residence hall occupied the same horizon. Students crossed the quad beneath the frozen corona while whole days moved through them in seconds: lectures beginning, doors opening, friendships forming, arguments ending, parties spilling into morning.
The visible eclipse would pass. Its supernatural shadow would not.
That understanding entered Nathan without a voice. The dream did not explain itself in sentences; it placed the truth inside him fully formed.
Four Masters had awakened at totality.
They were in a race.
Before the lingering eclipse released the university, one of them would establish dominion over the school. Every classroom, residence, club, office, attraction, friendship, and rivalry formed part of the ground on which that race would be fought. The others would expand their influence while attacking whatever their rivals built.
Anything Nathan gained could be taken from him.
Anyone another Master claimed could be won away.
Refusing to compete would not stop the contest. It would only allow the other three to decide what every relationship on campus became.
Three distant forces moved at the edges of the dream: physical hunger burning red, trust closing into unquestioning certainty, and cold will turning attention into obedience. Nathan could not see the men carrying them, but he recognized the signatures he had felt ignite beside Love.
Love showed itself differently.
Warm currents moved between people everywhere Nathan looked. A joke shared on the library steps. A hand resting at the small of a lover's back. Two friends leaning together over one phone. Family irritation softened by affection neither person needed to name. The currents already existed. Nathan could feel where each one began, what kind of love it carried, and how much more intense it could become.
He could enter the connections already running through the campus, intensify them, and make himself the person all that affection turned toward.
Four currents burned brighter than the rest.
The dream named them without speech.
His Main Keys.
Eva appeared first at the edge of the creek path, rendered from Nathan's memory rather than drawn from the real woman elsewhere in town.
<img src="img/Eva/Normal.jpg">
She stood with her arms folded and one eyebrow raised, wearing the familiar expression that meant she already knew he was hiding something. Eva was his wholly platonic best friend, the person who answered late messages, offered rides without turning them into rescues, and understood when silence was a boundary rather than a rejection.
Love touched that friendship in the dream.
Eva's loyalty warmed into adoration. Her familiar smile lingered too long. The affection remained recognizably hers, but every part of it began revolving around Nathan—as though years of platonic love had always been waiting to become something absolute.
Nathan pulled his hand away from the current.
The dream-Eva kept smiling at him.
Kylie appeared in the living room of their off-campus home, one hand wrapped around the coffee mug she stole whenever his back was turned.
<img src="img/Kylie/Normal.jpg">
His younger $relation loved him with the casual certainty of family. She teased him, trusted his judgment, and wanted his approval without organizing her life around earning it.
One pulse of Love changed the balance. Kylie's affection became breathless admiration. The joke she had been about to make disappeared because agreeing with him felt better. Nathan understood how easily familial love could become a need to please him—and how pleasant it would feel to be regarded as incapable of disappointing her.
<<speech "Nathan">> "That's not what she feels." <</speech>>
The dream offered no argument. It only showed how little power would be required to make it true.
Isabella appeared beneath the student-union arch, holding a book against her chest. Childhood memories, holidays, and the years shaped by Kane's friendship with Nathan's late father moved behind her like reflections in glass.
<img src="img/Isabella/Normal.jpg">
Their history was genuinely platonic. Nathan had never needed it to be anything else.
Love revealed how much material existed inside that history: familiarity, trust, private jokes, old tenderness, and the ease of being known without explanation. A slight turn of the current made Isabella look at him as though every childhood memory had been the beginning of a romance neither of them recognized until now.
The possibility was beautiful because it borrowed everything real between them.
That was also what made it false.
Aria appeared fourth, standing in the reception area outside Alina's office with her internship bag over one shoulder.
<img src="img/Aria/Normal.jpg">
Aria was his girlfriend. Her romantic love did not need to be created, translated, or redirected. She already chose intimacy with him: private kisses, joined hands, ordinary plans, and the quiet trust of expecting a shared tomorrow.
Love offered Nathan a single intoxicating adjustment.
More.
Aria's expression opened with overwhelming devotion. Every other priority dimmed around him. Her internship, her friendships, and even her sense of herself remained present, but Nathan became the emotional meaning behind all of them. She did not look trapped. She looked happier than she had ever been.
That was the temptation Love carried. It did not have to resemble fear or obedience. It could feel wonderful to the person being changed.
Nathan wanted that expression for one heartbeat too long.
Then he closed his eyes and let the false Aria disappear. The real woman remained beyond the dream, unchanged and unaware.
/% V3 MAIN KEY PLACEHOLDER — LEAH
When Leah's V3 roster entry and portrait exist, add her fifth Main Key reflection here with `img/Leah/Normal.jpg`.
Continuity: Leah is Nathan's friendly ex. Their relationship ended without hostility; she still sends gym jokes through Eva. Nathan's Love-specific temptation is to reignite old affection and make a concluded romance feel inevitable again, rewriting an amicable ending into renewed devotion.
Do not display a broken portrait or visible placeholder before the V3 asset exists.
%/
The four currents gathered around Nathan. They were the strongest forms of love already present in his life: platonic, familial, historical, and romantic. That variety made them powerful—and made every alteration easier to disguise as something that had always been there.
<h2 style="color:#66d9ff;">The Spare Keys Chosen This Run</h2>
Beyond the four fixed currents, the dream selected five more from the wider campus. Their positions were not fixed. For this contest, only the five chosen from the wider field resolved into faces.
<<set _nathanSpareDescriptions to {
"elsa": "Elsa's compassion already crosses the damaged space between Nathan and Josh. Love could make her friendship with Nathan feel more emotionally honest—and more important—than every family loyalty complicating it.",
"marie": "Marie rejected both Nathan and Josh and never encouraged their rivalry. Her warmth is broad and genuine. Love could turn that ordinary friendliness into the romantic answer she already chose not to give him.",
"lulu": "Lulu's quiet admiration grows through books, shared study time, and easy conversation. Love would have abundant genuine affection to intensify before either of them could identify when fondness became devotion.",
"kailey": "Kailey brings independence and disciplined energy to their porch-side friendship. Love could make those relaxed neighborly conversations the part of every day she anticipates most—and make Nathan the person she most wants beside her.",
"anya": "Anya once helped Nathan understand university life when she was the more experienced student. Respect, gratitude, and established warmth give Love several honest feelings it could blur into personal attachment.",
"madi": "Madi connects through curiosity. If that curiosity became affection focused on Nathan, every question and new friendship she chased could draw another part of campus into his orbit.",
"maya": "Maya remembers names, solves problems, and assumes good intentions. Love could make helping Nathan feel personally rewarding until routine kindness became an eagerness to give him whatever he requested.",
"gina": "Gina creates momentum wherever she goes. If she loved Nathan's presence, she would not keep that feeling private; she would bring him into rooms, parties, and friendships until her excitement became socially contagious.",
"claire": "Claire's charisma turns attention into status, while old hurt keeps her selective about closeness. Winning her genuine affection would give Nathan a powerful social current—and could redirect another piece of Josh's former world toward him."
}>>
<<set _selectedNathanSpares to $vices.nathan.backups || []>>
<div style="display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:14px; margin:18px 0;">
<<for _spareID range _selectedNathanSpares>>
<<set _spareGirl to $roster.find(c => c.id === _spareID)>>
<<if _spareGirl>>
<div style="background:#101820; border:1px solid #2a6570; border-radius:8px; padding:12px;">
<img @src="'img/' + _spareGirl.name + '/Normal.jpg'" style="width:100%; height:auto; border-radius:6px; margin-bottom:10px;">
<h3 style="color:#66d9ff; margin:0 0 7px 0;"><<print _spareGirl.name>></h3>
<p style="margin:0;"><<print _nathanSpareDescriptions[_spareID]>></p>
</div>
<</if>>
<</for>>
</div>
Nathan disliked the word *Spare* almost as much as *Key*. The five women were not substitutes for anyone. The dream used the term because their strategic place could change from one contest to another, not because their feelings or lives mattered less.
Together, the nine selected currents spread through different parts of the university. Some were already affectionate. Some held only familiarity, respect, curiosity, or social possibility. Love did not care which form it began with. It only needed something real enough to intensify.
Then the campus divided beneath four colors.
The other Masters pulled at the same social world from different directions. A relationship Nathan deepened could be overwhelmed, conditioned, or redirected. A woman claimed by a rival could still feel something for Nathan—and Love could make that feeling stronger than whatever stood between them.
The black sun began to close.
Nathan felt the deadline without knowing its date. The supernatural eclipse would persist after daylight returned, an unseen shadow over ordinary school days. It would not persist forever. Before it ended, one Master would control enough of Eldridge Hollow that the others could no longer challenge his dominion.
The word still disgusted him.
The possibility of changing what people felt did not.
That difference stayed with him as the dream broke apart.
<h2 style="color:#00ffcc;">What Love Should Do</h2>
Nathan woke against the maple with his fingers dug into the soil.
The physical eclipse had entered afterlight. A widening edge of sun brightened the creek, but Nathan could still feel the dream's black disk somewhere behind ordinary daylight.
The Spirit offered no explanation. The candle-flame image had disappeared, and the presence remained as silent as it had been from the beginning.
Nathan thought about the four Main Keys and the five Spare Keys selected for this race. Calling them Keys still felt obscene. They were people with different kinds of affection, not doors waiting for him to open.
But Love had shown him something he could not pretend to misunderstand: feelings shaped choices long before commands became necessary. If someone loved him deeply enough, helping him would feel generous. Agreeing would feel intimate. Choosing what he wanted could feel like choosing happiness for herself.
Nathan did not want authority built from obedience or fear.
He wanted a campus where affection outweighed cruelty, resentment, humiliation, and indifference. He wanted enemies capable of caring about the people they hurt. He wanted old bitterness to soften, friendships to deepen, and desire to stop being something people rationed out of fear.
He also wanted that affection to point toward him.
Nathan stood and brushed damp soil from his palms.
He would begin with the relationships that already existed. He would spend time with his Main Keys, seek out the five Spare Keys the dream had selected, and learn how gently Love could move before anyone noticed it moving. He would map friendships, attraction, family ties, admiration, and old tenderness across the university.
He would not issue commands.
He would make agreeing with him feel like the most intimate and satisfying choice available.
If a rival took someone he had already reached, Nathan would not answer with force. He would intensify every surviving feeling until her desire for him became stronger than the rival's claim.
The thought should have horrified him without qualification.
Instead, part of him wondered whether a person made happier, more affectionate, and more connected would truly experience that as harm.
Love warmed behind his heart.
Nathan imagined the university linked by affection: arguments losing their cruelty, isolated people welcomed into circles, lovers speaking honestly, friends choosing one another without embarrassment. At the center of every current stood Nathan—not commanding, not feared, simply loved too much to oppose.
The vision was generous, intimate, and profoundly selfish.
For the first time, Nathan understood that all three things could be true at once.
<hr>
<h2 style="color:#d8d8d8;">Kane's Study</h2>
Director Maxwell Kane sat alone in his private study while afternoon light returned across Eldridge Hollow.
<img src="img/Player/Maxwell.jpg">
Four closed files occupied one side of his desk. Nathan's lay apart from the others, beneath a brass paperweight shaped like a small flame.
Kane had watched people like Nathan draw affection without demanding it. Warmth came easily to him. Friends volunteered trust, women relaxed around him, and even old anger remained tangled with memories of closeness. Love had not given Nathan a foreign instinct. It had given scale to an ability he already possessed.
The registry mark beside Nathan's name remained warm. Kane touched it once, then withdrew his hand.
Nathan would resist the language of conquest. He would call dominion harmony, manipulation connection, and obsession a love finally strong enough to overcome fear. He would rarely need to issue an order. If he succeeded, people would carry out his wishes while believing the wishes expressed their own deepest feelings.
That could make him gentler than the others.
It could also make him the hardest to recognize as a tyrant.
Kane looked toward the study window, where the last partial phase was thinning over the university.
Nathan would not rule through fear or obedience. He would make his attention, approval, and affection the emotional rewards everyone wanted most.
Kane wondered how long Nathan would keep asking whether love was freely given—and when he would begin measuring only how much of it pointed toward him.
</div>
<div style="margin-top:30px; text-align:center; border-top:1px solid #333; padding-top:20px; padding-bottom:35px;">
<span class="custom-link">[[Reflect on the bonds Love marked...|Nathan_Dossier]]</span>
<br><br>
<div style="font-size:0.8em; opacity:0.7;">
[[Skip reflections and begin Day 1|Hub]]
</div>
</div>
<<set $playerID to "josh">>
<h1 style="text-align:center; color:#ff3333; text-shadow:0 0 10px #ff3333; letter-spacing:2px;">JOSH — LUST AFTER TOTALITY</h1>
<p style="text-align:center; color:#888;">A dream carried by heat</p>
<div class="narrative">
<h2 style="color:#ff3333;">The Dream</h2>
Josh made it halfway down Maple Street before the strength left his knees.
<img src="img/Player/Josh.jpg">
The bookstore door had already closed behind him. Daylight returned around the moon in a widening white blade, but the crescent pendant beneath his shirt remained hot enough to mark every beat of his pulse.
He caught himself against a brick wall. The pavement tilted. Heat climbed from his chest into his throat and gathered behind his eyes until the street vanished.
Josh stood in the university gym beneath a black sun.
Every door opened onto a different part of Eldridge Hollow. The weight-room mirrors reflected lecture halls. The running track curved through the student union. Locker-room doors led into residences, offices, and Havenwood. Students moved through all of it while whole days passed beneath a corona that never changed.
The physical eclipse would end. Its supernatural shadow would remain.
Knowledge entered Josh with the next strike of his pulse.
Four Masters had awakened. Before the lingering eclipse released the school, one would establish dominion over it. The others would compete for the same people, the same influence, and the same control. Anything won could be stolen. Anyone broken for one Master could be claimed by another.
There would be no reward for refusing.
Only defeat decided by somebody else.
Three rival forces watched from beyond the mirrors: warm affection, enclosing trust, and cold obedience. Josh felt no moral mystery in them. They were weapons carried by men who would use them while inventing better names for what they did.
His own weapon answered through his body.
Lust was not a voice and did not place commands inside anyone's mind. It was pressure made physical: pulse, heat, sensitivity, contraction, and need intensified until thought could no longer organize resistance. Anger gave it force. Sustained eye contact gave it direction.
Josh understood immediately why it belonged to him.
The mirrors changed. Four figures appeared behind him, each marked by a red fracture in the glass.
His Main Keys.
Lily stood on the staircase at home in sleep-mussed hair and pajamas, rendered from memory rather than taken from the real woman.
<img src="img/Lily/Normal.jpg">
His younger $relation believed in him long after belief became inconvenient. The dream marked that loyalty as a vulnerability every rival could see. Love could redirect it. Trust could make another man feel safer. Will could turn her easy faith into obedience.
Josh's hands curled.
Lily was not a demonstration target. She was the person whose uncomplicated affection proved that somebody still knew him without first listing what was wrong.
Any Master who used her to reach him would learn exactly how much anger Lust could carry.
Elsa appeared in the living room with her phone in one hand and exhaustion hidden beneath a stern expression.
<img src="img/Elsa/Normal.jpg">
His older $relation interfered, worried, scheduled appointments, recruited friends, and refused to stop caring when Josh made caring unpleasant. He resented the pressure she put on him. He also knew how much of his life would collapse if her attention turned completely toward somebody else.
The dream showed a warm current pulling Elsa toward Nathan.
Jealousy struck before reason. Josh hated the reaction, hated Nathan for existing inside it, and hated the dream for exposing a fear he would never admit aloud.
Alina appeared in her office chair, patient and composed.
<img src="img/Alina/Normal.jpg">
She had looked directly at Josh without fear and listened without rewarding him for basic honesty. That calm had made him feel judged even when she was doing nothing of the kind.
Lust showed him how quickly calm could fail.
The false Alina's pupils widened. Her breathing caught. One sustained look made professional attention collapse into physical need so severe that the careful words never reached her mouth.
Josh felt satisfaction before he felt disgust.
He broke eye contact, and the dream-Alina returned to stillness.
Lana appeared beside her car with a casebook on the roof and a sandwich held out like an order.
<img src="img/Lana/Normal.jpg">
His cousin never softened a truth for him. She could enter his worst mood, touch his sleeve, insult his decisions, and remain entirely unimpressed by the performance he used to drive other people away.
The dream marked her as another pressure point—not because Josh wanted her approval, he told himself, but because rivals would recognize how much weight her opinion carried.
He did not believe his own denial.
/% V3 MAIN KEY PLACEHOLDER — HAZEL
When Hazel's V3 roster entry and portrait exist, add her fifth Main Key reflection here with `img/Hazel/Normal.jpg`.
Continuity: Hazel is Josh's childhood friend, a quiet persistent presence who still leaves notes, food, or brief check-ins without demanding gratitude. Her Lust-specific beat should expose how much Josh values attention that asks nothing from him and how violently he would react to a rival redirecting it.
Do not display a broken portrait or visible placeholder before the V3 asset exists.
%/
The four fractures spread through the mirrors. Josh understood the label *Main Keys* as both threat and opportunity. These were the people rivals could use to weaken him most efficiently. They were also the people around whom his anger became fastest, hottest, and most difficult to control.
<h2 style="color:#ff7777;">The Spare Keys Chosen This Run</h2>
Five more mirrors lit around the gym. Their positions were not fixed. For this contest, only the five Spare Keys selected from Josh's wider pool resolved into faces.
<<set _joshSpareDescriptions to {
"claire": "Claire once knew Josh well enough to challenge him without fear. Her independence and old hurt make her refusal personal; making her body betray that refusal would feel like winning an argument he has carried for years.",
"savannah": "Savannah is friendly with everyone, including Nathan and Jasper. Josh sees how easily her open warmth gives rivals access to every social circle—and how devastating it would be if physical need made that universal friendliness narrow around him.",
"gina": "Gina brings energy, music, and people wherever she goes. Her confidence makes her visible; overwhelming her would give Josh both a thrilling target and a route into Elsa's entire social world.",
"jade": "Jade's practical compassion never becomes submission. She expects Josh to improve without treating him as hopeless. That measured judgment makes him want to shatter her composure and prove reason cannot govern everything.",
"marie": "Marie rejected both Josh and Nathan without cruelty and remains oblivious to how deeply the rivalry survived. Josh sees the chance to force a physical preference where she once gave neither man the answer he wanted.",
"kali": "Kali reads emotional shifts too quickly for Josh's comfort. Her teasing intuition can expose anger before he controls it; Lust offers a way to turn that perceptiveness against her body until she can read nothing except need.",
"rae": "Rae meets authority with defiance and expects every demand to become a contest. Josh recognizes the appeal immediately: enough anger and eye contact could make her body surrender while her mouth still tries to fight.",
"lacy": "Lacy uses status, beauty, and calculated charm to control attention. Breaking that control would let Josh reverse the social hierarchy and make the woman accustomed to being pursued become physically desperate for him.",
"adriana": "Adriana carries herself with a security officer's physical certainty and disciplined awareness. Lust would test whether training and structure can survive when her own body becomes the emergency she cannot contain."
}>>
<<set _selectedJoshSpares to $vices.josh.backups || []>>
<div style="display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:14px; margin:18px 0;">
<<for _spareID range _selectedJoshSpares>>
<<set _spareGirl to $roster.find(c => c.id === _spareID)>>
<<if _spareGirl>>
<div style="background:#1c1010; border:1px solid #812f2f; border-radius:8px; padding:12px;">
<img @src="'img/' + _spareGirl.name + '/Normal.jpg'" style="width:100%; height:auto; border-radius:6px; margin-bottom:10px;">
<h3 style="color:#ff7777; margin:0 0 7px 0;"><<print _spareGirl.name>></h3>
<p style="margin:0;"><<print _joshSpareDescriptions[_spareID]>></p>
</div>
<</if>>
<</for>>
</div>
The dream did not call the five women disposable. *Spare* meant their strategic place had been selected for this race rather than fixed across every possible contest. Each offered a different source of anger, status, access, or resistance.
Josh looked across the nine marked reflections.
The Main Keys were leverage rivals would use against him. The selected Spares were where he could begin proving that nobody on this campus was beyond his reach.
The black sun contracted.
The dream impressed the deadline into him. The supernatural eclipse would remain after daylight returned, but not forever. Before it ended, one Master would dominate enough of Eldridge Hollow that the other three could no longer contest him.
Josh felt no disgust at the word *dominion*.
For once, the world had admitted that everything was a competition.
<h2 style="color:#ff3333;">What Lust Should Do</h2>
Josh woke on one knee beside the brick wall, breath tearing through his lungs.
The street had brightened. Cars moved at the far intersection. Nobody nearby appeared to have noticed the dream or the heat still beating beneath Josh's skin.
He thought of Lily and Elsa first. He would not begin with them. The dream had marked them as weaknesses because rivals could exploit his attachment, not because he needed to prove his power on his own family tonight.
Alina and Lana were different kinds of risks. They saw too much and spoke too directly. He would decide what to do about them after he understood how precisely Lust could be controlled.
The five selected Spare Keys gave him cleaner places to start.
Josh would test range, eye contact, and the amount of anger required. He would learn how long the physical overload lasted and whether repeated exposure made the body remember him. He did not need anyone to love him, trust him, or forget an order. He needed the body to demand him loudly enough that every higher principle became useless.
Then he would build a reputation nobody could dismiss.
Every person who had treated him as volatile, pathetic, or secondary would watch desirable women lose control under his attention. Every rival would learn that taking something from Josh meant placing it inside the reach of his anger.
He knew the power could become cruelty with almost no distance between impulse and effect.
That was not a reason to refuse it.
It was a reason to become better at choosing where the cruelty landed.
The thought sounded disciplined. Josh recognized the excuse inside it and kept it anyway.
He stood, adjusted the pendant beneath his shirt, and looked toward campus.
The race wanted a predator.
Josh intended to make the other three regret giving him prey.
<hr>
<h2 style="color:#d8d8d8;">Kane's Study</h2>
Director Maxwell Kane watched a red registry line pulse across the instrument on his desk.
<img src="img/Player/Maxwell.jpg">
Josh's file lay open beneath it. The reports inside described missed lectures, arguments, abandoned appointments, and enough genuine attempts at improvement to make the failures more painful rather than less.
Kane did not mistake anger for simplicity. Josh used contempt to hide how carefully he measured every room: who received attention, who was forgiven, who was desired, and who seemed to obtain all three without fighting.
Lust had given that accounting a physical answer.
Josh would be the most visibly dangerous of the four. His victories would leave damage nobody could comfortably rename as kindness, family, or procedure. That honesty might make him careless. It might also free him from the moral hesitation that slowed the others.
Kane closed the file.
Josh believed the race had finally made the world fair by admitting it was cruel.
Kane wondered whether he would master his anger—or merely give it enough power to master everyone else first.
</div>
<div style="margin-top:30px; text-align:center; border-top:1px solid #333; padding-top:20px; padding-bottom:35px;">
<span class="custom-link">[[Look closer at the targets walking this campus...|Josh_Dossier]]</span>
<br><br>
<div style="font-size:0.8em; opacity:0.7;">
[[Skip observations and begin Day 1|Hub]]
</div>
</div><<set $playerID to "jasper">>
<h1 style="text-align:center; color:#ffcc00; text-shadow:0 0 10px #ffcc00; letter-spacing:2px;">JASPER — TRUST AFTER TOTALITY</h1>
<p style="text-align:center; color:#888;">A dream inside Havenwood</p>
<div class="narrative">
<h2 style="color:#ffcc00;">The Dream</h2>
Jasper sat on the edge of his bed while the silver atomizer cooled in his hand.
<img src="img/Player/Jasper.jpg">
Afterlight spread through Havenwood's windows. The strange midday darkness withdrew from the hallway, revealing familiar scuffs in the floorboards and the old paint around his door. Downstairs, somebody called that the sun was coming back. A second voice answered from the kitchen.
Jasper should have gone to them.
Instead, chamomile, worn leather, and rain deepened around him until the bedroom walls moved farther away.
He stood in Havenwood beneath a black sun.
The house had expanded across the university. Its front hall opened into the student union. Bedroom doors led to classrooms, offices, the library, and distant apartments. The porch wrapped around the observatory and administration tower. Hundreds of people crossed the threshold while whole days passed beneath the unmoving corona.
The physical eclipse would end. Its supernatural shadow would remain over Eldridge Hollow.
The scent carried knowledge into Jasper with every breath.
Four Masters had awakened at totality. They were competing for dominion over the school. Before the lingering eclipse ended, one would build enough influence that the other three could no longer challenge him.
Anything welcomed inside one Master's domain could be taken by another.
Anyone who trusted Jasper could be made to desire, obey, or love somebody else instead.
Refusing the contest would not preserve Havenwood or the relationships around it. It would merely leave the doors open while three rivals decided who walked through them.
At the edge of the dream, red hunger, warm attachment, and cold control pressed against the house.
Trust responded through the atomizer.
The fragrance did not seize anybody. It made Jasper feel familiar. It softened the distance between stranger and confidant, between guest and family, between a place someone visited and the place she called home. Repeated carefully, that safety could become certainty. Certainty could become loyalty. Loyalty could become obedience that still felt like belonging.
Four doors opened at once.
His Main Keys.
Casey appeared on Havenwood's porch with a takeout bag in one hand and her old key in the other.
<img src="img/Casey/Normal.jpg">
She had grown up in the house and left when she was ready, yet she returned with food, sarcasm, and an instinctive claim to rooms that still remembered her. Jasper had known her only during the approximately eighteen months since his own arrival, but he understood what each return meant to everyone inside.
The dream showed Casey placing the key on the porch rail and walking away for good.
Trust offered an answer: deepen every welcome until returning no longer felt optional, until Havenwood became the only place where she could fully relax.
Jasper closed his hand around the atomizer without spraying it.
Chanel appeared in the kitchen, one palm on the counter and the other holding a schedule nobody else wanted to manage.
<img src="img/Chanel/Normal.jpg">
She had carried responsibility for Havenwood long before Jasper arrived. She treated him as an adult resident while still noticing whether he ate, slept, and came home. Her trust gave him a real place in the house; it also gave him access to everything she held together.
The scent curled around the false Chanel. Her tired posture eased. She looked at Jasper with complete confidence and handed him the schedule, the keys, and every decision after them.
The surrender resembled relief.
That made it easy to imagine as kindness.
Carolina appeared in the photography room beneath a string of clipped prints, her blonde hair catching the warm light.
<img src="img/Carolina/Normal.jpg">
She had become Jasper's literal foster sister during his eighteen months at Havenwood. Their closeness was real but recent, built through shared meals, awkward jokes, photographs, and the uncomplicated affection with which Carolina treated him as family.
Trust showed him how that bond could become absolute. Carolina's uncertainty disappeared. Every borrowed flirtation, creative ambition, and future plan returned to one certainty: Jasper knew best, Jasper would understand, Jasper was the person whose approval made every choice feel safe.
The vision appealed directly to the part of him that wanted family to be permanent.
He hated how naturally he wanted to breathe it in.
Melody appeared beside the library window with a paperback saving the chair next to hers.
<img src="img/Melody/Normal.jpg">
She had made space for Jasper repeatedly—at meetings, on walks home, and in the quiet pauses where her shy warmth became visible. She already trusted his company. She already wanted him beside her.
The atomizer could make that tentative closeness certain. Melody would stop wondering whether she was asking too much. She would trust every invitation Jasper offered and experience deeper dependence as the courage to finally belong somewhere.
Jasper understood why the dream had chosen her.
/% V3 MAIN KEY PLACEHOLDER — KARLEE
When Karlee's V3 roster entry and portrait exist, add her fifth Main Key reflection here with `img/Karlee/Normal.jpg`.
Continuity: Karlee is Jasper's sociology mentor. Her Trust-specific beat should turn respected academic guidance into mutual reliance, then tempt Jasper to make the mentor trust his judgment more than her own.
Do not display a broken portrait or visible placeholder before the V3 asset exists.
%/
The four rooms connected around Jasper. Each Main Key represented a different part of the home he feared could come apart: somebody who returned, somebody who held it together, a foster sister inside it, and a new relationship that might join it.
<h2 style="color:#ffe477;">The Spare Keys Chosen This Run</h2>
Five additional doors opened across the expanded house. Their positions were not fixed. For this contest, only the five Spare Keys selected from Jasper's wider pool became visible.
<<set _jasperSpareDescriptions to {
"isabella": "Isabella values genuine connection and approaches new people with principled warmth. Trust could make Jasper feel like the rare person who understands both her ordinary self and the weight of Kane's family world.",
"caprice": "Caprice hides care behind guarded observation and dry restraint. Earning her trust would matter because she does not give it cheaply; deepening it could turn private kindness into dependence she refuses to show anyone else.",
"blake": "Blake is surrounded by attention but keeps emotional distance from most of it. Jasper could offer relief from performance, then use Trust to make him the only person around whom she believes she can be genuine.",
"adria": "Adria carries leadership through preparation and control. Trust could make delegating to Jasper feel like sound judgment until she relies on his approval for decisions she once made independently.",
"jade": "Jade's compassion is practical and deliberate. Jasper would value a bond she has examined rather than stumbled into; the essence could quietly make every conclusion about his reliability arrive more easily than doubt.",
"alina": "Alina offers patient, professional attention while maintaining clear boundaries. Trust could turn clinical safety into personal openness and make recusing herself feel like permission to rely on Jasper beyond the office.",
"lulu": "Lulu responds to thoughtful conversation and shared ideas. Jasper could let familiarity grow through books and quiet company, then deepen the sense that he is the person with whom she can speak most honestly.",
"savannah": "Savannah belongs easily in many circles and is already friendly with Jasper. If her broad trust centered on him, she could make Havenwood feel familiar to people across the entire campus.",
"aria": "Aria's empathy and wellness work make trust part of how she helps others. Jasper could become the person she confides in after caring for everyone else, then make that relief feel too essential to question."
}>>
<<set _selectedJasperSpares to $vices.jasper.backups || []>>
<div style="display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:14px; margin:18px 0;">
<<for _spareID range _selectedJasperSpares>>
<<set _spareGirl to $roster.find(c => c.id === _spareID)>>
<<if _spareGirl>>
<div style="background:#1c1a0d; border:1px solid #8f741e; border-radius:8px; padding:12px;">
<img @src="'img/' + _spareGirl.name + '/Normal.jpg'" style="width:100%; height:auto; border-radius:6px; margin-bottom:10px;">
<h3 style="color:#ffe477; margin:0 0 7px 0;"><<print _spareGirl.name>></h3>
<p style="margin:0;"><<print _jasperSpareDescriptions[_spareID]>></p>
</div>
<</if>>
<</for>>
</div>
Jasper disliked calling them Spare Keys. The five women were not replacements. The term meant only that the dream had selected their strategic relationship to him for this contest from a wider set of possibilities.
Nine doors now stood open inside the impossible Havenwood.
The other Masters waited beyond them.
Jasper could not guarantee that every person would remain unchanged. He could make Havenwood—and himself—the relationship they trusted most when change came.
The black sun narrowed.
The deadline settled into the scent. The lingering eclipse would not hold forever. Before it ended, one Master would control enough of Eldridge Hollow that the others could no longer contest him.
Jasper looked down the hall at the rooms joined beneath one roof.
Dominion sounded less monstrous when the dream made it resemble a family large enough to include everyone.
<h2 style="color:#ffcc00;">What Trust Should Do</h2>
Jasper woke on the edge of his bed with the atomizer still closed in his fist.
The hallway outside had brightened. Real Havenwood remained its ordinary size. Somebody downstairs laughed, and the familiar sound pulled him back into the room.
He thought about Casey, Chanel, Carolina, Melody, and the five Spare Keys chosen for the race. The dream had exposed his weakest justification before he could invent it himself: if rivals were coming, making people trust him more could look like protection rather than conquest.
The danger did not make the need disappear.
Jasper would begin with the house. He would learn the essence's range and duration where he understood the relationships well enough to notice small changes. He would never spray a room blindly. Trust needed context, repetition, and enough real conversation to settle without feeling imposed.
Then he would widen Havenwood's circle.
The selected Spare Keys offered paths into the university beyond the house: leadership, friendship groups, academic life, wellness, and social status. Jasper could make each new bond feel chosen because some part of it would be real before the essence deepened it.
He told himself he would preserve disagreement. He would let people say no. He would use Trust to strengthen what already deserved to survive.
But the dream had shown him Casey's abandoned key, Carolina's certainty, Chanel's relieved surrender, and Melody's dependence.
If somebody wanted to walk away from the family Jasper built, he already knew how tempting it would be to help her remember why staying felt safer.
Trust warmed the atomizer.
Jasper carried it downstairs.
<hr>
<h2 style="color:#d8d8d8;">Kane's Study</h2>
Director Maxwell Kane opened Jasper's file while the smell of rain reached his study through a closed window.
<img src="img/Player/Maxwell.jpg">
The registry mark had taken the shape of a doorway. Kane traced its edge without crossing the line.
Jasper would never call his domain an empire. He would call it Havenwood, family, mutual care, or simply a place where people chose to remain. That language was sincere. It was also the mechanism by which Trust could spread without announcing itself as control.
Of the four Masters, Jasper was the most likely to make conquest feel like being welcomed home.
His restraint might preserve genuine affection longer than the others. His fear of losing what he built might also make every open door one he eventually needed to close.
Kane shut the file and listened to the impossible rain fade.
Jasper would measure victory by how many people called his domain home.
Kane wondered whether he would still recognize a family once nobody inside it could choose not to belong.
</div>
<div style="margin-top:30px; text-align:center; border-top:1px solid #333; padding-top:20px; padding-bottom:35px;">
<span class="custom-link">[[Reflect on the family you're building...|Jasper_Dossier]]</span>
<br><br>
<div style="font-size:0.8em; opacity:0.7;">
[[Skip reflections and begin Day 1|Hub]]
</div>
</div>
<<set $playerID to "caldwell">>
<h1 style="text-align:center; color:#bb66ff; text-shadow:0 0 10px #bb66ff; letter-spacing:2px;">CALDWELL — WILL AFTER TOTALITY</h1>
<p style="text-align:center; color:#888;">A dream inside the machine</p>
<div class="narrative">
<h2 style="color:#bb66ff;">The Dream</h2>
Caldwell remained alone in observatory control while afterlight widened across the protected solar monitor.
<img src="img/Player/Caldwell.jpg">
The synthetic attention model waited on the second screen with its head lowered. No living subject occupied the room. The projector had obeyed thoughts its software could not detect, and the frequency module still produced a tone Caldwell felt in his teeth rather than heard.
He reached for the emergency cutoff.
The screen turned black before he touched it.
Caldwell found himself seated in an auditorium beneath a black sun.
Every row extended into a different part of Eldridge Hollow. Students occupied lecture seats that became office chairs, library tables, dorm beds, security stations, and couches inside private homes. Days passed across their faces while the corona remained fixed above a projection screen large enough to cover the horizon.
The physical eclipse would end. Its supernatural effect would not.
Information entered Caldwell with the clean certainty of a completed calculation.
Four Masters had awakened at totality. They were in a race for dominion over the university. Before the lingering eclipse ended, one would control enough of the institution and its people that the other three could no longer challenge him.
Any subject conditioned by one Master could be reclaimed by another.
Any system Caldwell built could be infiltrated, disrupted, or turned against him.
Abstention was not neutrality. It was surrender without data.
Three rival methods registered at the edge of the auditorium: emotion intensified into devotion, trust made stronger than judgment, and physical need severe enough to drown thought. Crude in different ways, but not useless.
Will responded through the projection screen.
Caldwell saw the full architecture at once. Light and sound would create attention. Repetition would lower resistance. Triggers would retrieve conditioned states. Cover memories would preserve public function. With sufficient exposure, the subject would experience obedience not as external force but as the most natural next action available.
The dream had not given him a miracle detached from his work.
It had removed the limits from work he already understood.
Four profiles opened on the screen.
His Main Keys.
Anya appeared first, standing beside Caldwell's desk with marked essays held against her chest.
<img src="img/Anya/Normal.jpg">
She was his graduate assistant, student, employee, and most accessible source of intelligent cooperation. Her ambition made his approval valuable. Her trust made unusual requests appear academically meaningful before suspicion had reason to form.
The dream placed a basic induction spiral behind her.
Anya's posture softened. Her eyes fixed. She interpreted every crude instruction as part of an advanced evaluation and supplied the intellectual dignity Caldwell had never bothered to include.
He recognized an ideal first calibration: complex enough to measure, eager enough to return, and close enough to monitor over time.
Rae appeared in the chair across from his desk, one leg crossed and defiance visible before she spoke.
<img src="img/Rae/Normal.jpg">
She distrusted authority and reacted to pressure by pushing back. That made her useful. A system tested only on cooperative subjects revealed nothing about resistance.
The dream showed her anger surviving while her body followed a command. Then the anger blurred. Then even the memory of resisting disappeared behind a harmless explanation Caldwell had supplied.
He wanted to know exactly how many repetitions separated those stages.
Adriana appeared in uniform beneath the observatory's security monitors.
<img src="img/Adriana/Normal.jpg">
She already accepted structure, hierarchy, and direct orders when they served a clear operational purpose. Caldwell supervised her shifts and trusted her competence. Conditioning would not need to destroy those traits; it could preserve them while changing the authority to which they ultimately answered.
A controlled Adriana would give him access, surveillance, and enforcement without the public deterioration that made lesser subjects conspicuous.
Keisha appeared behind the Vice Director's desk, composed and professionally civil.
<img src="img/Keisha/Normal.jpg">
She possessed institutional authority Caldwell respected in practice and resented in private. His misogynistic explanation for her early promotion had never survived objective scrutiny, but prejudice did not require evidence to remain useful to him.
Will offered a cleaner hierarchy. Keisha could retain the intelligence and discipline that made her effective while every important decision quietly passed through Caldwell's priorities first.
The dream-Keisha signed a directive without reading it.
Caldwell found the image deeply satisfying.
/% V3 MAIN KEY PLACEHOLDER — VANNA
When Vanna's V3 roster entry and portrait exist, add her fifth Main Key reflection here with `img/Vanna/Normal.jpg`.
Continuity: Vanna is Caldwell's niece and an introductory philosophy student who also enters Nathan's tutoring orbit. Her Will-specific beat should expose the access granted by family and academic authority while treating her as a strategically sensitive subject, not a generic student.
Do not display a broken portrait or visible placeholder before the V3 asset exists.
%/
The four profiles aligned beside the synthetic model. Main Keys were not sentimental attachments. They were high-value subjects whose access, resistance, authority, and proximity made them central to Caldwell's control architecture—and made losing them to a rival disproportionately costly.
<h2 style="color:#d8a8ff;">The Spare Keys Chosen This Run</h2>
Five secondary profiles opened. Their positions were not fixed. For this contest, only the five Spare Keys selected from Caldwell's wider pool appeared on the screen.
<<set _caldwellSpareDescriptions to {
"isabella": "Isabella combines direct access to Kane with a principled public identity. Conditioning her would create both a sensitive test of family proximity and a channel into the one administrator Caldwell cannot predict.",
"chanel": "Chanel's authority crosses faculty life and Havenwood. Preserving her compassionate public competence while subordinating her private decisions would give Caldwell influence over students, residents, and a respected colleague.",
"maya": "Maya handles records, room assignments, forms, and the daily movement of people through administration. Her trusting helpfulness makes routine requests easy to disguise and her access strategically valuable.",
"lacy": "Lacy understands status, favors, and informal power. Breaking her belief that privilege protects her would give Caldwell a socially connected subject who can manipulate elite circles while answering to him alone.",
"adria": "Adria's Student Council authority reaches events, volunteers, budgets, and public messaging. Will could preserve her diplomatic polish while making Caldwell's priorities feel like her own best administrative judgment.",
"madi": "Madi's curiosity carries her into stories other people miss. Conditioning could turn investigation into selective reporting, directing attention toward Caldwell's rivals while making evidence against him seem uninteresting.",
"lana": "Lana's legal training and argumentative discipline make her a valuable resistance test. A controlled Lana could provide sophisticated justification for decisions whose real purpose she had been conditioned not to question.",
"eva": "Eva's loyalty to Nathan makes her a direct route into Love's closest circle. Reassigning that loyalty through conditioning would test whether Will can preserve devotion while replacing the person it serves.",
"blake": "Blake's visibility makes subtle control essential. If Caldwell can preserve her guarded public perfection while installing private obedience, her status becomes both proof of precision and a campus-wide asset."
}>>
<<set _selectedCaldwellSpares to $vices.caldwell.backups || []>>
<div style="display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:14px; margin:18px 0;">
<<for _spareID range _selectedCaldwellSpares>>
<<set _spareGirl to $roster.find(c => c.id === _spareID)>>
<<if _spareGirl>>
<div style="background:#17101f; border:1px solid #70409b; border-radius:8px; padding:12px;">
<img @src="'img/' + _spareGirl.name + '/Normal.jpg'" style="width:100%; height:auto; border-radius:6px; margin-bottom:10px;">
<h3 style="color:#d8a8ff; margin:0 0 7px 0;"><<print _spareGirl.name>></h3>
<p style="margin:0;"><<print _caldwellSpareDescriptions[_spareID]>></p>
</div>
<</if>>
<</for>>
</div>
Caldwell accepted the distinction between Main and Spare Keys without objecting to the terminology. The five selected Spares were variable assets, not lesser ones. Their value depended on what each could access, influence, reveal, or deny to a rival during this run.
Nine profiles surrounded the synthetic model.
The red signature would attack through the body. The gold signature would create loyalty networks. The warm signature would spread through existing affection. Caldwell's advantage was repeatability. A properly conditioned subject could remain intelligent, socially functional, and useful while carrying instructions no rival noticed until execution.
The black sun contracted above the auditorium.
Caldwell understood the deadline. The supernatural eclipse would persist beyond the visible event, but not indefinitely. Before it ended, one Master would establish uncontested dominion over Eldridge Hollow.
He did not reject the word.
He began organizing the experiment.
<h2 style="color:#bb66ff;">What Will Should Do</h2>
Caldwell woke in observatory control with one hand suspended over the cutoff.
Only a fraction of a second had passed. The synthetic model still waited at baseline, though a new directory had appeared on the isolated system without a source.
Caldwell did not open it immediately.
He listed requirements instead.
First: establish minimum effective exposure using a cooperative, observable subject. Second: separate ordinary suggestibility from Will-assisted response. Third: preserve memory and public competence while testing increasingly specific triggers. Fourth: identify whether rival influence could be detected, overwritten, or deliberately left in place as false information.
The Main Keys offered controlled access to different levels of resistance and institutional value. The five selected Spare Keys widened the experiment into social, legal, administrative, and rival-connected systems.
He would not waste the first day attempting spectacle.
Anya was the obvious baseline. Rae could follow once Caldwell knew the equipment no longer depended on synthetic approximation. Adriana and Keisha required cleaner methods because visible damage to either would compromise assets more valuable than a single successful induction.
The dream had also shown him the central strategic problem: rivals could take conditioned subjects away.
Caldwell would therefore build redundancy. Triggers nested beneath triggers. Cover memories that survived outside influence. Instructions designed to activate only when another Master believed the subject secure. If he could not prevent theft, he could make stolen assets remain his instruments.
He powered down the public-facing monitor and removed the projector from the observatory port.
The race had given him competitors, a deadline, and an institution large enough for meaningful trials.
For the first time in years, Caldwell considered the possibility that his work might deserve the word *ambitious*.
<hr>
<h2 style="color:#d8d8d8;">Kane's Study</h2>
Director Maxwell Kane watched a violet registry line divide into an orderly grid.
<img src="img/Player/Maxwell.jpg">
Caldwell's file remained closed. Kane did not need to open it to remember every complaint, commendation, security report, and experiment hidden behind ordinary university equipment.
Will suited Caldwell too well. The professor already understood that the cleanest control preserved a subject's usefulness and concealed the hand directing it. Power had not changed his philosophy. It had removed the practical objections.
Caldwell would be the first to treat the race as a system rather than a wound, appetite, or family. He would test assumptions, identify thresholds, and turn every failure into procedure.
That made him predictable at the beginning.
It made him dangerous later.
Kane looked toward the locked drawer containing his own registry records.
Of the four Masters, Caldwell was the most likely to discover that the contest had an observer—and the least likely to accept being observed once he did.
Kane wondered whether Caldwell would seek dominion over the university first, or decide the man studying the race was the only subject worthy of his final experiment.
</div>
<div style="margin-top:30px; text-align:center; border-top:1px solid #333; padding-top:20px; padding-bottom:35px;">
<span class="custom-link">[[Review the subject assessment files...|Caldwell_Dossier]]</span>
<br><br>
<div style="font-size:0.8em; opacity:0.7;">
[[Skip assessments and begin Day 1|Hub]]
</div>
</div><<nobr>>
/* NOTE: setup.getGroupBonus() is currently defined inside the
SocialMap_KaneComments passage, not in Story JavaScript.
This means it may not exist if that passage hasn't run yet.
Recommended fix: move the function to the JS module file
(06_ai_strategy.js or a new 08_group_bonus.js) so it is
always available from game start. */
<<silently>>
<<set _player to $vices[$playerID]>>
<<set _isPrimalSurge to (_player.ultType === "primal_surge")>>
<<set _groupBonus to setup.getGroupBonus($playerID)>>
<<set _availableTargets to $roster.filter(function(c) {
var locked = Object.values(c.stages).some(s => s >= 3);
var isShielded = (c.shieldTimer > 0 && c.shieldedBy !== $playerID);
var isQuest = ($kaneQuest.active && c.id === $kaneQuest.npcId);
if (isShielded && !_isPrimalSurge && !isQuest) return false;
return c.stages[$playerID] < 3 && !locked;
})>>
/* Repeat-malus awareness (author ruling): a girl already pushed at this
turn is ON GUARD. Blind Pulse never wastes the action on her when an
unguarded girl exists — mirrors the CPU targeting rule. */
<<set _pulseUnguarded to _availableTargets.filter(function(c) { return !($attemptLog && $attemptLog[c.id]); })>>
<<if _pulseUnguarded.length gt 0>> <<set _availableTargets to _pulseUnguarded>> <</if>>
<</silently>>
<h1 style="text-align:center; color: #00ffcc; text-shadow: 0 0 10px #00ffcc;">SELECT TARGET: <<print _player.name.toUpperCase()>></h1>
<<if _groupBonus gt 0>>
<div style="text-align:center; color: gold; font-weight: bold; margin-bottom: 20px; text-shadow: 0 0 8px gold;">
⭐ GROUP DOMINANCE BONUS: +<<print _groupBonus>> TO ALL ROLLS ⭐
</div>
<</if>>
/* --- SPECIAL ACTIONS ROW: Blind Pulse + Vulnerability (compact pills) --- */
<div class="special-actions" style="display: flex; flex-wrap: wrap; gap: 10px; margin: 0 auto 18px; justify-content: center; align-items: center;">
/* Blind Pulse: random target from the available pool */
<<if _availableTargets.length gt 0>>
<span style="color: #00ffcc; font-size: 0.75em; font-weight: bold; letter-spacing: 2px;">BLIND PULSE</span>
<<link "Engage Random Subject">>
<<set $targetNPC to _availableTargets.random()>>
<<set $targetMaster to null>>
<<set $isRandomTarget to true>>
<<goto "ProcessAction">>
<</link>>
<</if>>
/* Vulnerability: one slim alert per exposed rival */
<<for _vID range ["nathan", "josh", "jasper", "caldwell"]>>
<<if _vID !== $playerID and not $vices[_vID].isEliminated>>
<<capture _vID>>
<<if checkVulnerability($playerID, _vID)>>
<span style="display:inline-block; border: 2px solid #ff2222; background: #2a0505; box-shadow: 0 0 14px rgba(255,0,0,0.4); color: #ff5555; font-size: 0.85em; font-weight: bold; letter-spacing: 2px; padding: 6px 12px; border-radius: 8px; animation: pulse 1.2s infinite;">⚠ <<print $vices[_vID].name.toUpperCase()>> EXPOSED</span>
<<link "⚔ ATTACK MASTER">>
<<set $targetNPC to null>>
<<set $targetMaster to $vices[_vID]>>
<<set $isRandomTarget to false>>
<<goto "ProcessAction">>
<</link>>
<</if>>
<</capture>>
<</if>>
<</for>>
</div>
<hr style="border-color: #333; margin: 12px 0;">
/* --- NPC GRID --- */
<h3 style="text-align: center; color: #888;">Available Subjects <span style="font-size:0.72em; color:#666;">(click a name to open her file)</span>:</h3>
<div class="selection-grid" style="display:flex; flex-wrap:wrap; gap:16px; justify-content:center; align-items:flex-start; align-content:flex-start;">
<<nobr>>
<<for _npc range $roster>>
<<capture _npc>>
<<silently>>
<<set _isLocked to Object.values(_npc.stages).some(s => s >= 3)>>
<<set _isShielded to (_npc.shieldTimer > 0 && _npc.shieldedBy !== $playerID && !($kaneQuest.active && _npc.id === $kaneQuest.npcId))>>
<<set _show to (_npc.stages[$playerID] lt 3 && !_isLocked)>>
<</silently>>
<<if _show>>
<div class="target-card" style="display:block; width:190px; height:auto; min-height:0; box-sizing:border-box; align-self:flex-start; background:#111; border:1px solid #333; border-radius:10px; overflow:hidden; position:relative;">
/* Kane's Quest banner */
<<if $kaneQuest.active and _npc.id === $kaneQuest.npcId>>
<div style="background: #ffcc00; color: black; font-size: 0.6em; font-weight: bold; padding: 4px; text-align: center;">📜 KANE'S QUEST</div>
<</if>>
/* Spite target banner */
<<if $vices[$playerID].spiteNPCs && $vices[$playerID].spiteNPCs.includes(_npc.id)>>
<div style="background: #ffaa00; color: black; font-size: 0.6em; font-weight: bold; padding: 4px; text-align: center;">SPITE TARGET</div>
<</if>>
/* Rival influence banner — the current leader on her (owner marks
only full conquests) */
<<set _leadRival to leadingRival(_npc, $playerID)>>
<<if _npc.owner !== null and _npc.owner !== $playerID>>
<div style="background: #ff0000; color: white; font-size: 0.6em; font-weight: bold; padding: 4px; text-align: center; text-transform: uppercase;">CONQUERED BY <<print $vices[_npc.owner].name>></div>
<<elseif _leadRival !== null>>
<div style="background: #ff0000; color: white; font-size: 0.6em; font-weight: bold; padding: 4px; text-align: center; text-transform: uppercase;"><<print $vices[_leadRival].name>>'s influence <<print _npc.stages[_leadRival]>>/3</div>
<</if>>
/* Shield banner — shielded girls stay visible but cannot be challenged */
<<if _isShielded and !_isPrimalSurge>>
<<if _npc.shieldedBy === "SYSTEM">>
<div style="background: #333; color: #aaa; font-size: 0.6em; font-weight: bold; padding: 4px; text-align: center; letter-spacing: 1px;">OFFLINE — UNREACHABLE TODAY</div>
<<else>>
<div style="background: #1a3a5a; color: #9cc; font-size: 0.6em; font-weight: bold; padding: 4px; text-align: center;">🛡 SHIELDED</div>
<</if>>
<</if>>
/* Every portrait is 250×375 (2:3). Preserve the full image;
never force it into a short landscape crop. */
<img @src="'img/' + _npc.name + '/Portrait.jpg'" @style="'display:block; width:100%; height:auto; aspect-ratio:2/3; object-fit:contain; object-position:center; background:#080808; border-bottom:1px solid #333;' + (_isShielded && !_isPrimalSurge ? ' opacity:0.35; filter:grayscale(80%);' : '')">
<div style="padding: 10px; text-align: center;">
<strong style="font-size: 1.05em; color: #fff; line-height:1.15;"><<link _npc.name>><<script>>
/* Subject file popup - bios-style, from the target grid. */
var c = State.temporary.npc;
var _isMax = Object.values(c.stages).some(function(s){ return s >= 3; });
var img = _isMax ? "PortraitCorr.jpg" : "Portrait.jpg";
var html = "";
html += '<div style="display:flex; gap:14px; align-items:flex-start; text-align:left;">';
html += '<img src="img/' + c.name + '/' + img + '" style="width:130px; height:130px; aspect-ratio:1/1; object-fit:cover; object-position:top center; border-radius:8px; border:2px solid #ff66cc; flex-shrink:0;">';
html += '<div style="flex:1; min-width:0;">';
html += '<div style="display:flex; justify-content:space-between; align-items:flex-start; gap:8px;">';
html += '<div style="color:#ff66cc; font-size:1.5em; font-weight:bold;">' + c.name + '</div>';
if (c.keyTo !== null) {
html += '<span style="background:#ffcc00; color:#000; font-size:0.65em; font-weight:bold; text-transform:uppercase; padding:3px 8px; border-radius:4px;">Key: ' + State.variables.vices[c.keyTo].name + '</span>';
}
html += '</div>';
html += '<div style="margin:8px 0;">';
c.traits.forEach(function(t){
html += '<span style="background:#333; color:#00ffcc; border:1px solid #00ffcc; margin:0 5px 5px 0; display:inline-block; padding:3px 8px; border-radius:4px; font-weight:bold; text-transform:uppercase; font-size:0.65em;">' + t + '</span>';
});
var pk = setup.getPerkInfo(c.id);
if (pk) {
html += '<span style="background:#ff66cc; color:#000; margin:0 5px 5px 0; display:inline-block; padding:3px 8px; border-radius:4px; font-weight:bold; font-size:0.65em;">' + pk.icon + ' ' + pk.name + '</span>';
}
if (c.imprint) {
html += '<span style="background:#200; color:#f00; border:1px solid #f00; margin:0 5px 5px 0; display:inline-block; padding:3px 8px; border-radius:4px; font-size:0.65em;">Imprinted: ' + State.variables.vices[c.imprint].name + '</span>';
}
html += '</div>';
html += '<div style="font-size:0.85em; line-height:1.35; color:#ccc; margin:8px 0;">' + c.desc + '</div>';
html += '<div style="font-family:monospace; font-size:0.72em; color:#888; background:#000; padding:8px; border-radius:4px; display:grid; grid-template-columns:1fr 1fr; gap:5px; border:1px solid #222; margin-top:8px;">';
html += '<div>LOVE: ' + c.weakness.love + '</div><div>LUST: ' + c.weakness.lust + '</div>';
html += '<div>TRUST: ' + c.weakness.trust + '</div><div>WILL: ' + c.weakness.will + '</div>';
html += '</div></div></div>';
Dialog.setup(c.name + ' — Subject File', 'target-bio-dialog');
Dialog.wiki(html);
Dialog.open();
<</script>><</link>></strong>
<div style="font-size: 0.68em; color: #888; margin: 4px 0 7px; line-height:1.25;">
Sync Stage: <<print _npc.stages[$playerID]>>/3<br>
<<set _wKey to _player.weapon.toLowerCase()>>
Base Weakness: <<print _npc.weakness[_wKey]>>
<<if _groupBonus gt 0>>
<span style="color:#00ffcc;">(+<<print _groupBonus>>)</span>
<</if>>
</div>
/* Perk identity */
<<if setup.getPerkInfo(_npc.id)>>
<div style="margin-top:6px; padding-top:5px; border-top:1px dashed #333; font-size:0.68em; color:#ffcc00; line-height:1.2;">
<span title="Unique perk"><<print setup.getPerkInfo(_npc.id).icon>> <<print setup.getPerkInfo(_npc.id).name>></span>
<div style="color:#aaa; font-size:0.88em; line-height:1.2; margin-top:2px;"><<print setup.getPerkInfo(_npc.id).blurb>></div>
</div>
<</if>>
<<if _isShielded and !_isPrimalSurge>>
<div style="color:#666; font-size:0.7em; letter-spacing:1px; padding:4px 0;">UNREACHABLE</div>
<<else>>
<<link "CHALLENGE">>
<<set $targetNPC to _npc>>
<<set $targetMaster to null>>
<<set $isRandomTarget to false>>
<<goto "ProcessAction">>
<</link>>
<</if>>
</div>
</div>
<</if>>
<</capture>>
<</for>>
<</nobr>>
</div>
<div style="text-align:center; margin-top: 50px; padding-bottom: 50px;">
[[Back to Operations|Hub]]
</div>
<</nobr>><<silently>>
/* --- Init --- */
<<set _mID to ($activeTurn === "none" ? $playerID : $activeTurn)>>
<<set _player to $vices[_mID]>>
<<set _weapon to _player.weapon.toLowerCase()>>
<<set $outcome to "">>
<<set $interceptionNotice to null>>
<<set $chainTarget to null>>
<<set $chainVisited to []>>
<<set $repeatMalus to 0>>
<<set $transferredNPCs to []>>
/* Clear any leftover Predator's Rush video override from a previous scene */
<<set $sceneMasterOverride to null>>
<<if $failures === undefined>> <<set $failures to 0>> <</if>>
/* --- 1. ELIMINATION CHECK --- */
<<if $targetMaster !== null>>
<<if checkVulnerability(_mID, $targetMaster.id)>>
<<set $outcome to "ELIMINATION_SUCCESS">>
<<set $targetNPC to null>>
<<else>>
<<set $targetMaster to null>>
<</if>>
<</if>>
/* --- 2. NPC TARGET EXECUTION --- */
<<if $targetNPC !== null and $outcome === "">>
<<set _scoutBypass to _player.scoutActive>>
/* Clash check — <<goto "Clash_Event">> fires inside if a clash triggers.
<<goto>> inside <<include>> exits the include but NOT this passage.
We must check $outcome after the include to stop processing. */
<<include "Action_ClashCheck">>
/* CRITICAL: if a clash was triggered, stop here.
Clash_Event already handled the stage increment.
Continuing would run Action_ConquestRoll and double-increment. */
<<if $outcome !== "CLASH">>
<<set _maxAttempts to 3>>
<<set _actor to _player>>
<<include "Action_ConquestRoll">>
/* gaugeSpendSuccess may itself create a CLASH (notably Nathan's
Social Pandemic colliding with Josh's Predator's Rush).
Its <<goto "Clash_Event">> is asynchronous, so absolutely no
later redirect may overwrite it. */
<<if $outcome === "CLASH">>
/* Clash_Event redirect is already pending. */
<<else>>
/* Every outcome — including a plain SUCCESS — routes through
Player_Display. Auto-forwarding straight into the scene made
the browser Back button land on this passage, which instantly
re-forwarded into the scene: the player could never go back.
Player_Display is a stable, re-renderable moment (outcome
panel + scene link), matching the CPU log flow. */
<<goto "Player_Display">>
<</if>>
<</if>>
<</if>>
/* --- 3. ELIMINATION PROCESSING --- */
<<include "Action_EliminationProcess">>
<<if _mID === $playerID and $outcome !== "CLASH" and $outcome !== "SUCCESS" and $outcome !== "FIND_TOTAL_FAIL" and $outcome !== "CONQUEST_FAIL">> <<goto "Player_Display">> <</if>>
<</silently>><<silently>>
/* GALLERY MODE: never run end-of-day logic from gallery scenes.
NOTE: <<goto>> is async — it does NOT halt the passage — so the
ENTIRE body below is wrapped in the <<else>>. Otherwise the
passage's own trailing <<goto>> would fire after this one and
override the Gallery redirect. */
<<if $galleryMode>>
<<goto "Gallery">>
<<else>>
/* Kane reward scenes occur outside the normal turn order. Route
back to the pending midnight destination before decrementing any
turn timers or advancing another master. */
<<if $kaneRewardWatched>>
<<set $kaneRewardWatched to false>>
<<set $activeTurn to "none">>
<<set _kaneReturn to ($kaneRewardReturnPassage ? $kaneRewardReturnPassage : "EndTurnLogic")>>
<<set $kaneRewardReturnPassage to null>>
<<goto _kaneReturn>>
<<else>>
/* Same-turn repeat attempts reset with every finished turn. */
<<set $attemptLog to {}>>
/* Conquest-only ownership invariant: an owner whose conquest no longer
stands (his Stage 3 was undone) is cleared. Also self-heals saves made
before ownership became conquest-only. */
<<for _owI to 0; _owI lt $roster.length; _owI++>>
<<if $roster[_owI].owner !== null and $roster[_owI].stages[$roster[_owI].owner] lt 3>>
<<set $roster[_owI].owner to null>>
<</if>>
<</for>>
/* 1. TIMERS FOR THE MASTER WHO JUST FINISHED THEIR TURN */
<<if $activeTurn !== "none">>
<<set _f to $vices[$activeTurn]>>
/* Ultimate timer — Predator's Rush is excluded here: it ticks on
the marked rival's turns, not on Josh's own. */
<<if _f.ultTimer gt 0 and _f.ultType neq "predators_rush">>
<<set _f.ultTimer -= 1>>
<<if _f.ultTimer lte 0>>
<<set _f.ultType to null>>
<<set _f.ultTargetName to null>>
<</if>>
<</if>>
/* Caldwell's channeled ultimate: Rush ends on the mark's turn ends
(like Josh's own); Silence and Pandemic run on Caldwell's turns. */
<<if $vices.caldwell.channelUlt === "predators_rush">>
<<if $vices.caldwell.predatorTarget !== null and $vices[$vices.caldwell.predatorTarget].isEliminated>>
<<set $vices.caldwell.channelUlt to null>>
<<set $vices.caldwell.channelTimer to 0>>
<<set $vices.caldwell.predatorTarget to null>>
<<set $vices.caldwell.predatorMirrors to []>>
<<set $vices.caldwell.ultTargetName to null>>
<<elseif $vices.caldwell.predatorTarget === $activeTurn>>
/* Marked rival's turn over: the steal cap resets. */
<<set $vices.caldwell.predatorStealsThisTurn to 0>>
<<set $vices.caldwell.channelTimer -= 1>>
<<if $vices.caldwell.channelTimer lte 0>>
<<set $vices.caldwell.channelUlt to null>>
<<set $vices.caldwell.channelTimer to 0>>
<<set $vices.caldwell.predatorTarget to null>>
<<set $vices.caldwell.predatorMirrors to []>>
<<set $vices.caldwell.ultTargetName to null>>
<</if>>
<</if>>
<<elseif $vices.caldwell.channelUlt and $activeTurn === "caldwell">>
<<set $vices.caldwell.channelTimer -= 1>>
<<if $vices.caldwell.channelTimer lte 0>>
<<set $vices.caldwell.channelUlt to null>>
<<set $vices.caldwell.channelTimer to 0>>
<<set $vices.caldwell.ultTargetName to null>>
<</if>>
<</if>>
/* Predator's Rush lasts two of the marked rival's turns: it ticks
when the mark finishes a turn, and ends early if the mark is
eliminated. */
<<if $vices.josh.ultType === "predators_rush">>
<<if $vices.josh.predatorTarget !== null and $vices[$vices.josh.predatorTarget].isEliminated>>
<<set $vices.josh.ultType to null>>
<<set $vices.josh.ultTargetName to null>>
<<set $vices.josh.predatorTarget to null>>
<<set $vices.josh.predatorMirrors to []>>
<<elseif $vices.josh.predatorTarget === $activeTurn>>
/* Marked rival's turn over: the steal cap resets. */
<<set $vices.josh.predatorStealsThisTurn to 0>>
<<set $vices.josh.ultTimer -= 1>>
<<if $vices.josh.ultTimer lte 0>>
<<set $vices.josh.ultType to null>>
<<set $vices.josh.ultTargetName to null>>
<<set $vices.josh.predatorTarget to null>>
<<set $vices.josh.predatorMirrors to []>>
<</if>>
<</if>>
<</if>>
/* Silence debuff */
<<if _f.silencedTimer gt 0>>
<<set _f.silencedTimer -= 1>>
<<if _f.silencedTimer lte 0>>
<<set _f.silencedBy to null>>
<</if>>
<</if>>
/* Jammed timer */
<<if _f.jammedTimer gt 0>>
<<set _f.jammedTimer -= 1>>
<</if>>
/* Shield timers
Carnal Fever: shields expire after 1 turn instead of
counting down normally. Any shield set during Carnal
Fever is immediately cleared at the end of the turn it
was placed (shieldTimer hits 0 after 1 decrement). This
is enforced by capping the timer to 1 at decrement time
when the theme is active, so even a 3-turn shield placed
before the eclipse becomes a 1-turn shield mid-eclipse. */
<<for _i to 0; _i lt $roster.length; _i++>>
<<if $roster[_i].shieldTimer gt 0>>
<<if $activeEclipse.theme === "The Carnal Fever" and $roster[_i].shieldedBy !== "SYSTEM">>
/* Carnal Fever: force-expire all non-system shields */
<<set $roster[_i].shieldTimer to 0>>
<<set $roster[_i].shieldedBy to null>>
<<else>>
<<set $roster[_i].shieldTimer -= 1>>
<<if $roster[_i].shieldTimer lte 0>>
<<set $roster[_i].shieldedBy to null>>
<</if>>
<</if>>
<</if>>
<</for>>
/* Strategy timer */
<<if _f.strategyTimer gt 0>>
<<set _f.strategyTimer -= 1>>
<<if _f.strategyTimer lte 0>>
<<run setup.updateStrategy($activeTurn)>>
<</if>>
<</if>>
/* Shadow stances aimed at THIS master expire with the master's
turn, whether or not they fired. Each shadower's stance is its
own intercept: it survives until that shadower clashes, then is
spent — and any stance still waiting when the turn ends is
removed now. Guard Domain (OWN_KEYS) is not a stance on a
specific master and is left untouched here. */
<<for _clrID range ["nathan", "josh", "jasper", "caldwell"]>>
<<if _clrID !== $activeTurn and $vices[_clrID].following === $activeTurn>>
<<set $vices[_clrID].following to null>>
<</if>>
<</for>>
<</if>>
/* 2. VICTORY CHECK: SOLE SURVIVOR */
<<set _activeMasters to ["nathan", "josh", "jasper", "caldwell"].filter(id => !$vices[id].isEliminated)>>
/* 3. VICTORY CHECK: TOTAL CONQUEST */
<<set _totalConquered to 0>>
<<for _i to 0; _i lt $roster.length; _i++>>
<<if Object.values($roster[_i].stages).some(s => s >= 3)>>
<<set _totalConquered += 1>>
<</if>>
<</for>>
/* 4. FINALE ROUTING */
<<if _activeMasters.length lte 1>>
<<set $winnerID to _activeMasters[0]>>
<<set $leftoverNPCs to $roster.filter(c => !Object.values(c.stages).some(s => s >= 3))>>
<<if $leftoverNPCs.length gt 0>>
<<goto "Finale_MopUp">>
<<else>>
<<goto "Finale_Intro">>
<</if>>
/* End when every girl in the CURRENT roster is fully conquered.
The old fixed threshold of 38 still counted the eight removed V3
placeholders, so a 30-girl game could never satisfy it. */
<<elseif _totalConquered gte $roster.length>>
<<set $winnerID to ["nathan","josh","jasper","caldwell"]
.filter(id => !$vices[id].isEliminated)
.sort((a,b) => $roster.filter(c=>c.owner===b).length - $roster.filter(c=>c.owner===a).length)[0]>>
<<goto "Finale_Intro">>
<<else>>
/* 5. NORMAL TURN TRANSITION */
<<set $actionsTaken to 0>>
<<set $pandemicChains to 0>>
<<set $stanceChosen to false>>
<<set $failures to 0>>
<<set $shamelessFired to false>>
<<set _turnOrder to ["nathan", "josh", "jasper", "caldwell"]>>
<<set _currentIndex to _turnOrder.indexOf($activeTurn)>>
<<if _currentIndex is 3>>
<<goto "Midnight_Recap">>
<<else>>
<<set $activeTurn to _turnOrder[_currentIndex + 1]>>
<<if $vices[$activeTurn].isEliminated>>
<<goto "EndTurnLogic">>
<<else>>
<<goto "Hub">>
<</if>>
<</if>>
<</if>>
<</if>>
<</if>>
<</silently>><h1>Love Influence: $targetNPC.name</h1>
<<silently>>
/* SAFETY CHECK: If target is missing, redirect back to Hub to prevent crash */
<<if not $targetNPC>>
<<goto "Hub">>
<<else>>
/* Re-fetch the stage directly from the roster using the ID */
<<set _sceneM to ($sceneMasterOverride ? $sceneMasterOverride : $activeTurn)>>
<<set _targetID to $targetNPC.id>>
<<set _realRef to $roster.find(function(c) { return c.id === State.temporary.targetID })>>
<<if _realRef>>
<<set _s to _realRef.stages[_sceneM]>>
<<else>>
/* Fallback if find fails */
<<set _s to $targetNPC.stages[_sceneM]>>
<</if>>
<</if>>
<</silently>>
<div class="narrative">
<<if ((_realRef || $targetNPC).resetFrom || {})[_sceneM] gte _s>>
<p style="color:#888; font-style:italic;"><<print $targetNPC.name>>'s body remembers what her mind had forgotten.</p>
<</if>>
<<if _s is 1>>
<<speech "Nathan">> "I've always wanted to keep you safe... I think you feel it too, don't you?" <</speech>>
<p>A gentle warmth spreads through $targetNPC.name’s chest. Nathan’s words feel like truth. The first quiet threads of devotion begin to weave around her heart.</p>
<<elseif _s is 2>>
<<speech "Nathan">> "You don’t have to face everything alone anymore. I’m here. Let me protect you." <</speech>>
<p>$targetNPC.name can’t stop thinking about Nathan—his voice, his kindness, the way he looks at her like she matters. Nothing else feels as important as being near him.</p>
<<elseif _s is 3>>
/* This will automatically use the "Corr" portrait because she is Stage 3 */
<<speech $targetNPC.name>> "Nathan… I’d do anything to keep you safe. Anything. You’re all I need." <</speech>>
<p>Total devotion achieved. She belongs to him—heart and soul. Her world now orbits only Nathan.</p>
<</if>>
</div>
/* This will look in img/$targetNPC.name/Nathan/ for the videos */
<<videoWall $targetNPC.name _s>>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Eva had been Nathan's best friend since high school. They had survived exams, terrible part-time jobs, Nathan's break with Josh, and enough ordinary evenings to stop treating silence as something that needed filling. Eva loved him fiercely and entirely without romance. She believed he deserved better than the people who treated gentleness as weakness, and she had confronted Josh more than once for trying.
<img src="img/Eva/Normal.jpg">
She was in Nathan's bright kitchen wearing a light-grey cropped T-shirt and faded denim cutoffs, changing his recipe whenever he looked away.
<<speech "Nathan">> "You added pepper again." <</speech>>
<<speech "Eva">> "The first pepper was structural. This is emotional support." <</speech>>
<<speech "Nathan">> "That is not how seasoning works." <</speech>>
<<speech "Eva">> "You invited me because you know I improve things." <</speech>>
Her phone buzzed beside the cutting board. Eva checked it and held the screen toward him.
<<speech "Eva">> "Leah sent another gym meme about people who skip leg day." <</speech>>
<<speech "Nathan">> "Why is my ex still using you as a delivery service? And I already went with Aria, and she knows it." <</speech>>
<<speech "Eva">> "Because you ignore the group chat, and because Leah respects my commitment to bothering you." <</speech>> She put the phone down. <<speech "Eva">> "Answer her eventually. You two managed to stay friends. That's rare and annoyingly mature." <</speech>>
The reference carried no jealousy. Eva had watched Nathan date Leah, helped select a birthday present for her, and never once wanted their friendship to become romantic. Plus, she was a strangely good wing-woman, both with Leah (which lasted a few months then back to friends) and Aria (a lot more serious).
They ate at the island and talked about campus. Josh's name surfaced when Nathan mentioned avoiding a business-club event.
<<speech "Eva">> "You should not have to reroute your life because he enters a room." <</speech>> Her tone sharpened. <<speech "Eva">> "If he starts anything, call me." <</speech>>
<<speech "Nathan">> "You cannot keep threatening to fight people for me." <</speech>>
<<speech "Eva">> "I absolutely can. I'm consistent." <</speech>>
Nathan smiled, but Eva saw the fatigue beneath it.
<<speech "Eva">> "I'm serious." <</speech>> She reached across the counter and squeezed his wrist. <<speech "Eva">> "I love you, idiot. You're my person. I'm not letting him grind you down because he's miserable." <</speech>>
The love spirit answered the affection in her voice.
Nathan did not call it. Warmth gathered behind him and moved through the kitchen in a living wave. Eva felt it cross their joined hands and settle beneath her breastbone.
Platonic love did not disappear. It became enormous.
Every high-school memory, every protective impulse, and every conviction that Nathan belonged permanently in her life compressed into a need so intense that friendship no longer felt physically close enough. Eva's breath caught. Her hand remained around his wrist.
<<speech "Eva">> "Did the room just get hot?" <</speech>>
Nathan felt the spirit move and knew enough to be afraid of it. He pulled his hand back.
<<speech "Nathan">> "Maybe the stove." <</speech>>
The answer was weak. Eva stared at him, then knocked a glass across the counter with her elbow. Water soaked the front of her grey shirt and denim shorts.
<<speech "Eva">> "Perfect." <</speech>>
Years of friendship had left a small stack of Eva's spare clothes in Nathan's laundry cupboard: things forgotten after gym trips, rainstorms, and nights spent on the couch. She changed in the bathroom, hanging the wet outfit over the shower rail. The only clean pieces were a tight navy-blue short-sleeve top and grey lace panties. Her spare joggers were still in the washing machine.
Eva returned to the kitchen bare-legged, treating the situation with the casualness their friendship had always allowed.
The warmth had not faded.
She leaned against the white island with her back toward Nathan and looked over one shoulder.
<<speech "Eva">> "Tell me if the back is wet too." <</speech>>
Nathan should have stayed where he was. The spirit pulsed through both of them.
His hands gripped and squeezed Eva's rounded ass through the grey lace, spreading her cheeks slightly. Eva pushed back into the touch, holding his gaze with a playful smile that did not belong to any moment they had shared before.
<video src="img/Eva/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The smile fell first.
Eva stepped away from his hands and pulled the navy top lower.
<<speech "Eva">> "We don't do that." <</speech>>
<<speech "Nathan">> "I know." <</speech>>
<<speech "Eva">> "I have changed in front of you. Slept beside you. Watched you date other people." <</speech>> She pressed both palms to the counter. <<speech "Eva">> "I have never wanted you to touch me like that." <</speech>>
Nathan's guilt tightened across his face. He still did not tell her why.
<<speech "Nathan">> "I'm sorry." <</speech>>
<<speech "Eva">> "So am I, because part of me wants you to do it again." <</speech>>
She retrieved her damp clothes, dressed quickly, and went to the door. Nathan followed but did not try to stop her.
<<speech "Eva">> "We are going to talk about this." <</speech>>
<<speech "Nathan">> "Yes." <</speech>>
They parted at the front door.
Eva drove home with both windows open. Cold air did nothing to remove the warmth under her skin or the phantom pressure of Nathan's hands. At her apartment she took off the damp clothes, paced the bright bedroom, and tried to reason herself back into the friendship she understood.
Her body would not cooperate.
Eva lay completely nude on the bed beneath the light tufted headboard, legs spread wide. Both hands moved between her thighs, fingers spreading her pussy lips and rubbing slowly over her clit and entrance. She watched the ceiling with half-lidded eyes, hips shifting as the memory of Nathan's touch drove her toward release.
<video src="img/Eva/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The orgasm left her breathless and no less confused. Whatever had happened in Nathan's kitchen had followed her home.
<<elseif _s is 2>>
<img src="img/Eva/Corr2.jpg">
*My place. No jokes. Tell me what happened.*
Nathan read it beneath the same living warmth and understood that the truth could not be postponed again.
Eva met Nathan in her bedroom with the curtains open and the door unlocked. She wanted every ordinary detail visible. No dim lights, no atmosphere, nowhere for either of them to pretend this was simply chemistry.
<<speech "Eva">> "Start with the warmth." <</speech>>
Nathan sat on the edge of the white bed. Eva remained standing.
He told her about the walk in the woods before the eclipse, the presence that had answered his loneliness, and the living warmth that now moved through him without permission. He explained what he had learned: it did not create affection from nothing. It took whatever love already existed—friendly, familial, romantic—and made it obsessive.
He admitted that he could feel the spirit wake during emotionally charged moments but could not always stop it. Sometimes it answered his own desire to be understood; sometimes it moved before he had decided what he wanted. The worst part was how quickly the result felt natural to him. Once somebody's affection intensified, the spirit wrapped Nathan in the same warmth, making guilt easier to reinterpret as proof that the connection had always been waiting underneath.
<<speech "Nathan">> "It doesn't whisper instructions." <</speech>> He kept his eyes on the floor. <<speech "Nathan">> "It makes love feel so certain that you can't help but be sure it's true." <</speech>>
Eva listened until he stopped trying to fill the silence.
<<speech "Eva">> "Has this happened with anyone else?" <</speech>>
Nathan's hesitation answered before he did.
<<speech "Nathan">> "Yes." <</speech>>
<<speech "Eva">> "Accidentally?" <</speech>>
<<speech "Nathan">> "At first." <</speech>> His voice dropped. <<speech "Nathan">> "Sometimes I recognized the warmth and did not leave. Sometimes I told myself the affection was already real, so letting it grow wasn't the same as forcing anything." <</speech>>
<<speech "Eva">> "But now you know better." <</speech>>
<<speech "Nathan">> "Yes." <</speech>>
<<speech "Eva">> "Can it be reversed?" <</speech>>
<<speech "Nathan">> "I don't know." <</speech>>
<<speech "Eva">> "Does distance weaken it? Does the person know when it activates? Can you trigger it deliberately?" <</speech>>
<<speech "Nathan">> "Distance helps with the immediate warmth. The feeling stays. Most people notice something, but they don't know what it is." <</speech>> He finally looked up. <<speech "Nathan">> "And yes. I think I can encourage it. I have tried not to learn how well." <</speech>>
Eva absorbed that without softening it for him.
<<speech "Eva">> "Why didn't you tell me before the kitchen?" <</speech>>
<<speech "Nathan">> "Because you know me better than anyone." <</speech>>
<<speech "Eva">> "That is a reason to tell me." <</speech>>
<<speech "Nathan">> "It was also the reason I was afraid to." <</speech>> His hands closed together. <<speech "Nathan">> "If you looked at me and saw a monster, I would believe you." <</speech>>
The admission hurt more than the supernatural explanation. Eva remained angry, but anger now stood beside the old instinct to keep Nathan from facing something alone.
<<speech "Eva">> "The kitchen was an accident." <</speech>>
<<speech "Nathan">> "Yes." <</speech>>
<<speech "Eva">> "And you knew enough to suspect what it was while I was in the bathroom." <</speech>>
Nathan looked down.
<<speech "Nathan">> "Yes." <</speech>>
<<speech "Eva">> "I have loved you since we were fifteen." <</speech>> Her voice stayed controlled. <<speech "Eva">> "Not romantically. I watched you date Leah, Aria and that dumb crush on Marie. I never wanted you. Then the room changed, and suddenly friendship felt like starvation." <</speech>>
<<speech "Nathan">> "I'm sorry." <</speech>>
<<speech "Eva">> "I believe you." <</speech>> She sat beside him at last. <<speech "Eva">> "That's the problem. I know you did not choose this, and now every protective instinct I have is telling me not to leave you alone with it." <</speech>>
Emotional closeness stirred the spirit again.
The warmth rose around Nathan's shoulders. Eva recognized it immediately.
<<speech "Eva">> "It's happening." <</speech>>
Nathan stood and backed away.
<<speech "Nathan">> "Go." <</speech>>
Eva should have. Instead she caught his hand.
<<speech "Eva">> "If I walk out every time it happens, we will never learn how to control it." <</speech>>
<<speech "Nathan">> "This is not a safe test." <</speech>>
<<speech "Eva">> "No." <</speech>> Her breathing quickened as the wave settled through her. <<speech "Eva">> "It isn't." <</speech>>
She kissed him.
Eva lay on her stomach across the bright white bed in a delicate white lace tank top, long hair cascading forward. One hand wrapped around Nathan's cock as she took him into her mouth. She looked up with steady eye contact, pulled back to breathe, licked the head, and took him deeper while her free hand steadied the base.
<video src="img/Eva/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The bathroom tiles were cool beneath Eva's wet hair and bare back. She lay with her mouth open and tongue extended while Nathan stroked above her face. Thick ropes of cum landed across her tongue, lips, and chin, dripping onto her chest. She kept her mouth open to catch everything, eyes fixed upward as saliva and cum shone on her skin.
<video src="img/Eva/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, Eva sat against the bathroom cabinet and wiped her face with a towel.
<<speech "Eva">> "I knew exactly what the warmth was." <</speech>>
<<speech "Nathan">> "I told you to leave." <</speech>>
<<speech "Eva">> "And I decided helping you mattered more than protecting myself from you." <</speech>> She met his eyes. <<speech "Eva">> "That sentence should scare both of us." <</speech>>
Nathan crouched in front of her.
<<speech "Nathan">> "We stop." <</speech>>
<<speech "Eva">> "We set rules." <</speech>> She held up one finger. <<speech "Eva">> "No testing this alone. No using it to win an argument. No pretending the person affected wanted the result just because she stops resisting." <</speech>>
<<speech "Nathan">> "Agreed." <</speech>>
Eva trusted the answer. She also knew the spirit had made agreement with Nathan feel better than distance from him.
<<elseif _s is 3>>
<img src="img/Eva/Corr1.jpg">
Eva arrived with a notebook full of rules, observations, and failed ideas for grounding Nathan when the spirit stirred. She had treated the power like any other threat to someone she loved: identify it, understand it, stand between it and the worst outcome.
The notebook's first page read: *Do not conduct tests alone.*
The lines beneath it were equally practical: name the warmth aloud, break eye contact, move into a public space, and never treat arousal as evidence of consent. Eva had even created a column for Nathan to record what he felt before an activation—fear, affection, jealousy, loneliness—because she suspected the spirit used his emotions as much as anybody else's.
Nathan had filled in one row. Under *What did you want?* he had written: *For Eva not to leave me.*
They were alone.
<<speech "Eva">> "I see the problem." <</speech>>
<<speech "Nathan">> "We can stop before we start." <</speech>>
<<speech "Eva">> "That is the sensible option." <</speech>> She placed the notebook on the table. <<speech "Eva">> "I hate it." <</speech>>
The spirit moved before either of them touched.
Warmth filled the living room, bright and alive. Eva gripped the back of the patterned couch. She had learned enough to name each change as it happened: her attention narrowing to Nathan, the rules becoming abstract, the old friendship expanding until it felt larger than every warning she had written.
<<speech "Eva">> "Talk to me." <</speech>>
<<speech "Nathan">> "About what?" <</speech>>
<<speech "Eva">> "Anything ordinary." <</speech>>
<<speech "Nathan">> "Leah says I still owe her twenty bucks from the gym bet." <</speech>>
Eva laughed once, breathlessly.
<<speech "Eva">> "You do. I was there." <</speech>>
The ordinary memory did not weaken the spirit. It made Nathan dearer.
Their "casual" conversation did not last long.
<img src="img/Eva/Corr3.jpg">
Eva lay back on the patterned couch, fully nude, long wavy hair spread beneath her. One silver-heeled leg remained raised in her hand while Nathan took her in a deep missionary angle. She looked up at him with half-lidded eyes and an open mouth, hips tilting to meet each steady thrust.
<video src="img/Eva/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Nathan stopped.
<<speech "Nathan">> "Tell me which part is you." <</speech>>
Eva held his gaze. The question had no clean answer left.
<<speech "Eva">> "The girl who loved you like family was me." <</speech>> Her voice shook. <<speech "Eva">> "The woman who wants you now is also me, even if something made that want too large. I can't cut my life into before and after and call one of them fake." <</speech>>
<<speech "Nathan">> "Eva—" <</speech>>
<<speech "Eva">> "I love you." <</speech>> She drew him down to her. <<speech "Eva">> "I know the spirit is inside that sentence. I'm choosing to say it anyway." <</speech>>
The last resistance did not disappear. It became part of the devotion.
On the gray-sheeted bed, Eva lay with her legs spread wide while Nathan thrust into her. Thick white cum already coated her outer lips and dripped downward. Eva worked her fingers through the creamy wetness, spreading herself as he continued, mouth open in soft gasps while the mess built between her thighs.
<video src="img/Eva/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Eva kept the notebook.
She also kept her classes, friends, sharp humor, and the instinct to challenge Nathan when he was wrong. The difference was that she now knew exactly what lived inside him and loved him with a force that made protecting the secret feel inseparable from protecting the man.
She became his confidante and his brake. She watched rooms for sudden warmth, interrupted dangerous moments, and quietly noted which friendships around Nathan might give the spirit something to amplify. Sometimes she prevented an accident. Sometimes she found herself wondering whether a particular affection might become something beautiful if she allowed the warmth one more breath.
Nathan believed Eva helped him control the spirit. Eva believed it too.
Neither could say whether the spirit had simply found the perfect person to protect it.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><<widget "videoWall">>
<<silently>>
<<set _npcName to $args[0]>>
<<set _stageNum to $args[1]>>
/* Use the 3rd argument if provided (for Finale/Eliminations),
otherwise fall back to the current active turn */
<<if $args[2]>>
<<set _masterID to $args[2]>>
<<elseif $sceneMasterOverride>>
/* Predator's Rush stole the scene — use the stealing master's videos */
<<set _masterID to $sceneMasterOverride>>
<<else>>
<<set _masterID to $activeTurn>>
<</if>>
/* One-shot override: consumed by the stolen scene so later scenes
(chain reactions, clashes) fall back to the active turn. */
<<set $sceneMasterOverride to null>>
<<set _playerName to $vices[_masterID].name>>
/* Construct Paths */
<<set _pathBase to "img/" + _npcName + "/" + _playerName + "/" + _stageNum>>
<<set _vid1 to _pathBase + "-1.mp4">>
<<set _vid2 to _pathBase + "-2.mp4">>
<</silently>>\
<<if _stageNum gt 0>>\
<div class="video-wall" style="margin-top: 20px; text-align: center;">
<video @src="_vid1" width="1000" height="480" autoplay controls loop muted playsinline style="border: 2px solid #555; margin-bottom: 10px; max-width: 100%;"></video>
<video @src="_vid2" width="1000" height="480" autoplay controls loop muted playsinline style="border: 2px solid #555; max-width: 100%;"></video>
</div>
<</if>>\
<</widget>>
<<widget "groupVideoWall">>
<<silently>>
<<set _npcs to $args[0]>>
<<set _masterID to $args[1]>>
<<set _masterObj to $vices[_masterID]>>
<<set _slaves to _masterObj.slaves>>
<</silently>>\
<div class="video-wall" style="margin-top: 30px; text-align: center;">
<h2 style="color: #ff66cc; text-transform: uppercase; letter-spacing: 4px; border-bottom: 2px solid #333; padding-bottom: 10px; margin-bottom: 20px;">Phase I: Collective Resonance</h2>
<div style="display: flex; flex-wrap: wrap; justify-content: center; gap: 30px; margin-bottom: 60px;">
<<for _npc range _npcs>>
<<silently>>
<<set _s to _npc.stages[_masterID]>>
<<set _videoMaster to _masterID>>
<<if _masterID === "caldwell" and _slaves.length gt 0>>
<<if random(1, 100) lte 50>>
<<set _videoMaster to _slaves.random()>>
<</if>>
<</if>>
<<set _vMasterName to $vices[_videoMaster].name>>
<</silently>>\
<div style="flex: 1 1 45%; max-width: 900px; min-width: 320px;">
<video @src="'img/' + _npc.name + '/' + _vMasterName + '/' + _s + '-1.mp4'" autoplay controls loop muted playsinline style="border: 3px solid #555; width: 100%; height: auto; box-shadow: 0 10px 30px rgba(0,0,0,0.8); border-radius: 8px;"></video>
<div style="font-size: 1.4em; color: #ff66cc; font-weight: bold; margin-top: 10px; text-transform: uppercase;">
<<print _npc.name>>
<<if _videoMaster !== _masterID>>
<span style="font-size: 0.6em; color: #888;">(Via <<print _vMasterName>>)</span>
<</if>>
</div>
</div>
<</for>>
</div>
<h2 style="color: #ff00ff; text-transform: uppercase; letter-spacing: 4px; border-bottom: 2px solid #333; padding-bottom: 10px; margin-bottom: 20px;">Phase II: Absolute Authority</h2>
<div style="display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;">
<<for _npc range _npcs>>
<<silently>>
<<set _s to _npc.stages[_masterID]>>
<<set _videoMaster to _masterID>>
<<if _masterID === "caldwell" and _slaves.length gt 0>>
<<if random(1, 100) lte 50>>
<<set _videoMaster to _slaves.random()>>
<</if>>
<</if>>
<<set _vMasterName to $vices[_videoMaster].name>>
<</silently>>\
<div style="flex: 1 1 45%; max-width: 900px; min-width: 320px;">
<video @src="'img/' + _npc.name + '/' + _vMasterName + '/' + _s + '-2.mp4'" autoplay controls loop muted playsinline style="border: 3px solid #ff00ff; width: 100%; height: auto; box-shadow: 0 10px 40px rgba(255,0,255,0.2); border-radius: 8px;"></video>
<div style="font-size: 1.4em; color: #ff00ff; font-weight: bold; margin-top: 10px; text-transform: uppercase;"><<print _npc.name>>
<<if _videoMaster !== _masterID>>
<span style="font-size: 0.6em; color: #888;">(Via <<print _vMasterName>>)</span>
<</if>>
</div>
</div>
<</for>>
</div>
</div>
<</widget>>
<<widget "groupConquestWall">>
<<silently>>
<<set _groupKey to $args[0]>>
<<set _targetIds to $args[1]>>
<<set _masterId to $args[2]>>
<<set _group to $groups[_groupKey]>>
<</silently>>\
<div class="group-conquest-container" style="width: 100%; max-width: 1000px; margin: 0 auto; display: flex; flex-direction: column; align-items: center;">
<div style="display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; background: rgba(255,255,255,0.05); padding: 15px; border-radius: 8px; width: 100%; border: 1px solid #333; margin-bottom: 10px;">
<<for _mID range _group.members>>
<<set _c to $roster.find(c => c.id === _mID)>>
<<set _lvl to _c.stages[_masterId]>>
<<set _imgName to (_lvl === 0 ? "Portrait.jpg" : "Corr" + _lvl + ".jpg")>>
<div style="text-align: center; width: 110px;">
<img @src="'img/' + _c.name + '/' + _imgName"
style="width: 100px; height: 100px; border-radius: 4px; border: <<if _targetIds.includes(_mID)>>3px solid #00ffcc; box-shadow: 0 0 10px #00ffcc;<<else>>1px solid #444<</if>>; object-fit: cover; object-position: top center;">
<div style="font-size: 0.75em; margin-top: 4px; font-weight: bold; color: <<if _lvl === 3>>#ff00ff<<elseif _targetIds.includes(_mID)>>#00ffcc<<else>>#888<</if>>;">
<<print _c.name.toUpperCase()>>
</div>
</div>
<</for>>
</div>
<div style="width: 100%; margin-top: 0;">
<h2 style="color: #00ffcc; text-align: center; text-transform: uppercase; letter-spacing: 2px; margin: 10px 0; background: rgba(0,255,204,0.1); padding: 5px; border-radius: 4px;">Primary Resonators</h2>
<<for _tID range _targetIds>>
<<set _npc to $roster.find(c => c.id === _tID)>>
<div style="width: 100%; margin-bottom: 20px;">
<video @src="'img/' + _npc.name + '/' + $vices[_masterId].name + '/' + _npc.stages[_masterId] + '-1.mp4'"
autoplay controls loop muted playsinline
style="width: 100%; border: 2px solid #00ffcc; border-radius: 4px; display: block;"></video>
<video @src="'img/' + _npc.name + '/' + $vices[_masterId].name + '/' + _npc.stages[_masterId] + '-2.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #00ffcc; border-radius: 4px; display: block; margin-top: 6px;"></video>
<div style="background: #000; padding: 5px; text-align: center; font-weight: bold; color: #00ffcc; border: 1px solid #00ffcc; border-top: none; text-transform: uppercase;">
<<print _npc.name>> <<print "(Stage " + _npc.stages[_masterId] + ")">>
</div>
</div>
<</for>>
</div>
<<set _supporters to _group.members.filter(id => !_targetIds.includes(id) && $roster.find(c => c.id === id).stages[_masterId] >= 3)>>
<<if _supporters.length gt 0>>
<div style="width: 100%; margin-top: 10px;">
<h3 style="color: #ff00ff; text-align: center; text-transform: uppercase; letter-spacing: 2px; margin: 10px 0; background: rgba(255,0,255,0.1); padding: 5px; border-radius: 4px;">Conquered Chorus</h3>
<<for _sID range _supporters>>
<<set _npc to $roster.find(c => c.id === _sID)>>
<div style="width: 100%; margin-bottom: 20px;">
<video @src="'img/' + _npc.name + '/' + $vices[_masterId].name + '/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #ff00ff; border-radius: 4px; display: block; opacity: 0.8;"></video>
<video @src="'img/' + _npc.name + '/' + $vices[_masterId].name + '/3-2.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #ff00ff; border-radius: 4px; display: block; opacity: 0.8; margin-top: 6px;"></video>
<div style="background: #000; padding: 5px; text-align: center; font-weight: bold; color: #ff00ff; border: 1px solid #ff00ff; border-top: none; text-transform: uppercase;">
<<print _npc.name>>
</div>
</div>
<</for>>
</div>
<</if>>
</div>
<</widget>>
/* ============================================================
gaugeSpendSuccess WIDGET
Called from Action_ConquestRoll (normal success path) and
from CPU_Process / Player_GaugeSpend (gauge spend path).
Contains the full conquest resolution: stage gain, imprint,
Wary→Invested, gauge gain, Predator's Rush mirror, chain
reaction, and scene resolution.
Reads: _mID, _weapon, _actor, $targetNPC, $roster, $vices,
$activeEclipse, $socialMap, $omenData
Writes: $outcome, $failures, $actionsTaken, $roster, $vices,
$targetNPC, $chainTarget, $mirrorPending, $sceneToLoad
============================================================ */
<<widget "gaugeSpendSuccess">>
<<silently>>
<<set $outcome to "SUCCESS">>
<<set _rIdx to $roster.findIndex(c => c.id === $targetNPC.id)>>
<<set $failures to 0>>
<<set _isSocialPandemic to (_actor.ultType === "social_pandemic" or (_mID === "caldwell" and $vices.caldwell.channelUlt === "social_pandemic"))>>
/* Fresh Apex Predation presentation state for this action. The queue
is populated only if Josh's personal track jumps over a scene tier. */
<<set $apexSceneQueue to []>>
<<set $apexSceneFinalStage to null>>
<<set $apexScenePassage to null>>
<<set $apexSceneNpcId to null>>
<<set $apexSavedActions to null>>
<<set $apexSavedChainTarget to null>>
/* ============================================================
PREDATOR'S RUSH — THE STEAL (v3)
When Josh's ult is active on the acting rival, the conquest is
hijacked ENTIRELY by Josh:
- Josh (not the rival) gains the stage on the girl
- Josh takes ownership + imprint
- Josh steals any chain reaction the action triggers
- the rival's action is still spent, but their turn continues
- only ONE master levels up with the girl
============================================================ */
<<set _stealActive to false>>
<<set _stealGainer to "">>
/* Author ruling (steal cap): Predator's Rush may steal at most TWO
girls per marked rival's turn (a two-girl clash consumes both).
predatorStealsThisTurn counts stolen girls this turn; it resets when
the marked rival finishes the turn (EndTurnLogic) and on activation. */
<<if !$vices.josh.isEliminated
and $vices.josh.ultType === "predators_rush"
and $vices.josh.predatorTarget === _mID
and not ($vices.josh.predatorStealsThisTurn gte 2)
and !$vices.josh.predatorMirrors.includes($targetNPC.id)
and $roster[_rIdx].stages.josh lt 3>>
<<set _stealActive to true>>
<<set _stealGainer to "josh">>
<<elseif $vices.caldwell.channelUlt === "predators_rush"
and $vices.caldwell.predatorTarget === _mID
and not ($vices.caldwell.predatorStealsThisTurn gte 2)
and !$vices.caldwell.predatorMirrors.includes($targetNPC.id)
and $roster[_rIdx].stages.caldwell lt 3>>
/* Caldwell channels an enslaved Josh's Rush: the steal is his. */
<<set _stealActive to true>>
<<set _stealGainer to "caldwell">>
<</if>>
<<set _gainer to (_stealActive ? _stealGainer : _mID)>>
/* ============================================================
BOTH ULTIMATES — THE 2-GIRL CLASH
Nathan's Social Pandemic (acting master) + Josh's Predator's
Rush on him. Instead of a silent steal, the two Vices clash
over the conquered girl AND the chain girl; the winner takes
BOTH. (Social Pandemic also bypasses The Static Void.)
============================================================ */
<<set _clashGirl2 to null>>
<<if _stealActive and _isSocialPandemic and $vices.josh.ultType === "predators_rush">>
<<set _friends to $socialMap[$targetNPC.id] || []>>
<<set _chainTargets to $roster.filter(function(c) {
if (!_friends.includes(c.id)) return false;
if (c.id === $targetNPC.id) return false;
if (Object.values(c.stages).some(s => s >= 3)) return false;
if (c.traits.includes("Empty Vessel")) return false;
return true;
})>>
<<if _chainTargets.length gt 0>>
<<set _clashGirl2 to _chainTargets.random()>>
<</if>>
<</if>>
<<if _clashGirl2 !== null>>
/* Set up the 2-girl clash — Clash_Event resolves BOTH girls and
spends the action. The normal steal/chain never runs. */
<<set $targetNPC to $roster[_rIdx]>>
<<set $clashChainGirlId to _clashGirl2.id>>
<<set $clashSecondNPC to null>>
<<set $followerID to "josh">>
<<set $noCrushingDefeat to false>>
<<set $mirrorPending to null>>
<<set $sceneMasterOverride to null>>
<<set $outcome to "CLASH">>
<<run $vices.josh.predatorMirrors.push($targetNPC.id)>>
<<run $vices.josh.predatorMirrors.push(_clashGirl2.id)>>
/* Two-girl clash: both slots of the per-turn cap are spent. */
<<set $vices.josh.predatorStealsThisTurn to ($vices.josh.predatorStealsThisTurn || 0) + 2>>
<<goto "Clash_Event">>
<<else>>
/* APEX PREDATION (Josh eclipse event) — Josh ambushes a rival's
successful conquest, at most once per day. He steals the EVENT,
not the levels: the rival's stage gain is cancelled, Josh rises
one stage on his own track, and ownership and the scene go to
Josh. The ambushed master may pay 40% Resonance to shield the
attempt — the conquest is then aborted and the action refunded.
Josh rarely strikes the same master two days running. */
<<set _eclipseStealState to "">>
<<if $activeEclipse.joshPredation
and _mID !== "josh"
and !$vices.josh.isEliminated
and not $joshStealUsedToday
and not _stealActive
and $roster[_rIdx].stages.josh lt 3>>
<<set _pounceChance to ($joshLastStealVictim === _mID ? 15 : 45)>>
<<if Math.random() * 100 lt _pounceChance>>
<<set $joshStealUsedToday to true>>
<<set $joshLastStealVictim to _mID>>
<<if _mID === $playerID and $vices[_mID].gauge gte 40>>
/* The player decides on the result screen. Nothing is
applied and the action is not spent until the choice. */
<<set _eclipseStealState to "CHOICE">>
<<set $joshStealPending to { npcId: $roster[_rIdx].id }>>
<<set $outcome to "JOSH_STEAL_CHOICE">>
<<else>>
/* AI masters shield Keys, Spares, the Kane girl, or an
imminent Stage 3 — when they can afford it. */
<<set _aiBlocks to ($vices[_mID].gauge gte 40
and ($vices[_mID].keys.includes($roster[_rIdx].id)
or $vices[_mID].backups.includes($roster[_rIdx].id)
or ($kaneQuest.active and $kaneQuest.npcId === $roster[_rIdx].id)
or $roster[_rIdx].stages[_mID] gte 2))>>
<<if _aiBlocks>>
<<run adjustGauge(_mID, -40)>>
<<set _eclipseStealState to "BLOCKED">>
<<set $outcome to "JOSH_STEAL_BLOCKED">>
<<else>>
<<set _eclipseStealState to "STOLEN">>
<</if>>
<</if>>
<</if>>
<</if>>
<<if _eclipseStealState neq "CHOICE" and _eclipseStealState neq "BLOCKED">>
<<set $actionsTaken += 1>>
/* Grudge & Theft — the rival most invested in her resents whoever
took her (progress-derived; owner only marks full conquests) */
<<set _oldOwner to leadingRival($roster[_rIdx], _gainer)>>
<<if _oldOwner !== null and _oldOwner !== _gainer>>
<<set $vices[_oldOwner].grudge to _gainer>>
<<set $vices[_oldOwner].grudgeTimer to 3>>
<<run setup.updateStrategy(_oldOwner)>>
<</if>>
<<if _eclipseStealState is "STOLEN">>
/* The eclipse steal: the rival's stage gain never lands; Josh
rises one stage on his own track and takes the girl. */
<<set $roster[_rIdx].stages.josh to Math.min(3, $roster[_rIdx].stages.josh + 1)>>
<<if $roster[_rIdx].stages.josh gte 3>> <<set $roster[_rIdx].owner to "josh">> <</if>>
<<if $roster[_rIdx].imprint === null>>
<<set $roster[_rIdx].imprint to "josh">>
<<run $roster[_rIdx].traits.pushUnique("Shameless")>>
<</if>>
<<if $kaneQuest.active and $roster[_rIdx].id === $kaneQuest.npcId and $roster[_rIdx].stages.josh gte 3>>
<<set $kaneQuest.active to false>>
<<set $kaneQuest.winner to "josh">>
<</if>>
<<set _joshSceneE to setup.sceneFor("Josh", $roster[_rIdx], "josh")>>
<<if not Story.has(_joshSceneE)>> <<set _joshSceneE to "Josh_Generic">> <</if>>
<<set $mirrorPending to { joshScene: _joshSceneE, npcName: $roster[_rIdx].name, eclipse: true }>>
<<elseif _stealActive>>
/* THE STEAL: the stealer (Josh, or channeling Caldwell) replaces the
rival — the rival gains no stage */
<<set $roster[_rIdx].stages[_stealGainer] to Math.min(3, $roster[_rIdx].stages[_stealGainer] + 1)>>
<<if $roster[_rIdx].stages[_stealGainer] gte 3>> <<set $roster[_rIdx].owner to _stealGainer>> <</if>>
<<run adjustGauge(_stealGainer, 10)>>
<<run $vices[_stealGainer].predatorMirrors.push($targetNPC.id)>>
<<set $vices[_stealGainer].predatorStealsThisTurn to ($vices[_stealGainer].predatorStealsThisTurn || 0) + 1>>
<<set _joshScene to setup.sceneFor($vices[_stealGainer].name, $targetNPC, _stealGainer)>>
<<if not Story.has(_joshScene)>> <<set _joshScene to $vices[_stealGainer].name + "_Generic">> <</if>>
<<set $mirrorPending to {
joshScene: _joshScene,
npcName: $targetNPC.name
}>>
<<else>>
<<set $roster[_rIdx].stages[_mID] += 1>>
<<if $roster[_rIdx].stages[_mID] gte 3>> <<set $roster[_rIdx].owner to _mID>> <</if>>
<</if>>
<</if>>
/* Imprinting — by the gainer (Josh on a steal) */
<<if $roster[_rIdx].imprint === null>>
<<set $roster[_rIdx].imprint to _gainer>>
<<if _gainer === "nathan">> <<run $roster[_rIdx].traits.pushUnique("Halo Effect")>>
<<elseif _gainer === "josh">> <<run $roster[_rIdx].traits.pushUnique("Shameless")>>
<<elseif _gainer === "jasper">> <<run $roster[_rIdx].traits.pushUnique("Unshakeable")>>
<<elseif _gainer === "caldwell">> <<run $roster[_rIdx].traits.pushUnique("Empty Vessel")>>
<</if>>
<</if>>
/* Wary → Invested transition (based on the gainer's stage) */
<<if $roster[_rIdx].traits.includes("Wary") and $roster[_rIdx].stages[_gainer] === 1>>
<<set _waryIdx to $roster[_rIdx].traits.indexOf("Wary")>>
<<if _waryIdx gte 0>> <<run $roster[_rIdx].traits.splice(_waryIdx, 1)>> <</if>>
<<run $roster[_rIdx].traits.pushUnique("Invested")>>
<</if>>
/* Gauge gain — the acting master still builds resonance from the effort */
<<if _eclipseStealState is "STOLEN">>
<<run adjustGauge("josh", 20)>>
<<elseif _eclipseStealState is "">>
<<run adjustGauge(_mID, 20)>>
<</if>>
/* DEVOTEE: +5 extra Resonance per conquest while the conqueror owns a Devotee.
The old lookup used the nonexistent perk key "muse", so the displayed
Devotee benefit never activated. */
<<if _eclipseStealState is "" and setup.perkOwners("devotee").indexOf(_gainer) !== -1>>
<<run adjustGauge(_gainer, 5)>>
<</if>>
/* Update local reference */
<<set $targetNPC to $roster[_rIdx]>>
/* KANE'S QUEST — did this conquest fully claim the marked girl? */
<<if $kaneQuest.active and $targetNPC.id === $kaneQuest.npcId and $targetNPC.stages[_gainer] gte 3>>
<<set $kaneQuest.active to false>>
/* Keep npcId until the reward resolves so the reward page can
still name the girl whose race was won. */
<<set $kaneQuest.winner to _gainer>>
<</if>>
/* Chain Reaction — on a steal, Josh intercepts the chain too.
The cascade still originates from the acting rival's action
(so their Social Pandemic can force it), but the chain itself
is attributed to Josh via $chainMasterOverride.
NOTE: Nathan's Social Pandemic bypasses The Static Void. */
<<if ($activeEclipse.theme !== "The Static Void" or _isSocialPandemic) and _eclipseStealState is "">>
<<set _chainMaster to (_stealActive ? _stealGainer : _mID)>>
<<set _chanceStage to $targetNPC.stages[_chainMaster]>>
<<set _baseChance to (_chanceStage === 3 ? 30 : _chanceStage === 2 ? 18 : 8)>>
<<if $targetNPC.traits.includes("Social Pillar") and _chanceStage gte 2>>
<<set _baseChance += 10>>
<</if>>
/* Social Pandemic guarantees chains, but at most two per turn;
further conquests roll the normal odds. */
<<set _pandemicGuaranteed to (_isSocialPandemic and $pandemicChains lt 2)>>
<<if _pandemicGuaranteed>> <<set _baseChance to 100>> <</if>>
/* CONFIDANTE: +10% chain when the source is a friend of an owned Confidante */
<<if setup.hasPerkFriend($targetNPC.id, "confidante", _chainMaster)>> <<set _baseChance += 10>> <</if>>
<<set _friends to $socialMap[$targetNPC.id] || []>>
<<if Math.random() * 100 lt _baseChance>>
<<set _chainTargets to $roster.filter(function(c) {
if (!_friends.includes(c.id)) return false;
if (c.id === $targetNPC.id) return false;
if (Object.values(c.stages).some(s => s >= 3)) return false;
if (c.traits.includes("Empty Vessel")) return false;
if (c.traits.includes("Jaded") and !_isSocialPandemic) return false;
return true;
})>>
<<if _chainTargets.length gt 0>>
<<set $chainTarget to _chainTargets.random()>>
/* Track every girl this chain cascade has touched so later
hops can never bounce back to an earlier one. */
<<set $chainVisited to [$targetNPC.id, $chainTarget.id]>>
<<if _stealActive>> <<set $chainMasterOverride to _stealGainer>> <</if>>
<<if _pandemicGuaranteed>> <<set $pandemicChains += 1>> <</if>>
<</if>>
<</if>>
<</if>>
/* Scene resolution — the Predator's Rush steal takes priority:
the rival's own scene is skipped and Josh's scene plays instead. */
<<if $mirrorPending !== null and $mirrorPending !== undefined>>
<<set $sceneToLoad to $mirrorPending.joshScene>>
<<set $sceneMasterOverride to "josh">>
<<else>>
<<set $sceneToLoad to setup.sceneFor(_actor.name, $targetNPC, _mID)>>
<<if not Story.has($sceneToLoad)>>
<<set $sceneToLoad to _actor.name + "_Generic">>
<</if>>
/* A multi-tier Apex copy enters a presentation-only queue. The
underlying conquest has already resolved once at the final tier. */
<<if $apexSceneQueue.length gt 1>>
<<set $apexScenePassage to $sceneToLoad>>
<<set $sceneToLoad to "ApexPredation_SceneQueue">>
<</if>>
/* Clear any leftover Predator's Rush override so a later normal
scene cannot accidentally show Josh's videos. */
<<set $sceneMasterOverride to null>>
<</if>>
<</if>>
<</silently>>
<</widget>><h1>Will Erosion: $targetNPC.name</h1>
<<silently>>
/* SAFETY CHECK: If target is missing, redirect back to Hub to prevent crash */
<<if not $targetNPC>>
<<goto "Hub">>
<<else>>
/* Re-fetch the stage directly from the roster using the ID */
<<set _sceneM to ($sceneMasterOverride ? $sceneMasterOverride : $activeTurn)>>
<<set _targetID to $targetNPC.id>>
<<set _realRef to $roster.find(function(c) { return c.id === State.temporary.targetID })>>
<<if _realRef>>
<<set _s to _realRef.stages[_sceneM]>>
<<else>>
/* Fallback if find fails */
<<set _s to $targetNPC.stages[_sceneM]>>
<</if>>
<</if>>
<</silently>>
<div class="narrative">
<<if ((_realRef || $targetNPC).resetFrom || {})[_sceneM] gte _s>>
<p style="color:#888; font-style:italic;"><<print $targetNPC.name>>'s body remembers what her mind had forgotten.</p>
<</if>>
<<if _s is 1>>
<<speech "Caldwell">> "Focus on the screen. Let your mind empty. Resistance is unnecessary." <</speech>>
<p>The spirals turn. $targetNPC.name’s thoughts grow heavy, sluggish. Caldwell’s voice slips inside her head like a key turning in a lock.</p>
<<elseif _s is 2>>
<<speech "Caldwell">> "You feel it now—the clarity. The peace of letting go. Obedience is freedom." <</speech>>
<p>$targetNPC.name returns to him without being summoned. The videos play behind her eyes even when she’s alone. Fighting feels… pointless.</p>
<<elseif _s is 3>>
<<speech $targetNPC.name>> "Yes, Dr. Caldwell… I understand. I exist to serve. Command me." <</speech>>
<p>Total erosion achieved. She is a doll—empty, pliant, his to shape and use as he pleases.</p>
<</if>>
</div>
<<videoWall $targetNPC.name _s>>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Influence: $targetNPC.name</h1>
<<silently>>
/* SAFETY CHECK: If target is missing, redirect back to Hub to prevent crash */
<<if not $targetNPC>>
<<goto "Hub">>
<<else>>
/* Re-fetch the stage directly from the roster using the ID */
<<set _sceneM to ($sceneMasterOverride ? $sceneMasterOverride : $activeTurn)>>
<<set _targetID to $targetNPC.id>>
<<set _realRef to $roster.find(function(c) { return c.id === State.temporary.targetID })>>
<<if _realRef>>
<<set _s to _realRef.stages[_sceneM]>>
<<else>>
/* Fallback if find fails */
<<set _s to $targetNPC.stages[_sceneM]>>
<</if>>
<</if>>
<</silently>>
<div class="narrative">
<<if ((_realRef || $targetNPC).resetFrom || {})[_sceneM] gte _s>>
<p style="color:#888; font-style:italic;"><<print $targetNPC.name>>'s body remembers what her mind had forgotten.</p>
<</if>>
<<if _s is 1>>
<<speech "Josh">> "Look at me. You feel that, don’t you? That heat you can’t ignore." <</speech>>
<p>A single stare ignites $targetNPC.name. Her body betrays her—flushed, trembling, aching. Josh’s Lust has claimed its first hold.</p>
<<elseif _s is 2>>
<<speech "Josh">> "You hate how much you want this… but you’re still here, aren’t you?" <</speech>>
<p>$targetNPC.name is unraveling. Every thought circles back to Josh—his voice, his smirk, the relief only he can give. Pride is cracking fast.</p>
<<elseif _s is 3>>
<<speech $targetNPC.name>> "Josh… please… I can’t fight it anymore. I’ll do whatever you want. Just… don’t stop." <</speech>>
<p>Total degradation achieved. She is his desperate pet—broken, needy, completely owned.</p>
<</if>>
</div>
<<videoWall $targetNPC.name _s>>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Influence: $targetNPC.name</h1>
<<silently>>
/* SAFETY CHECK: If target is missing, redirect back to Hub to prevent crash */
<<if not $targetNPC>>
<<goto "Hub">>
<<else>>
/* Re-fetch the stage directly from the roster using the ID */
<<set _sceneM to ($sceneMasterOverride ? $sceneMasterOverride : $activeTurn)>>
<<set _targetID to $targetNPC.id>>
<<set _realRef to $roster.find(function(c) { return c.id === State.temporary.targetID })>>
<<if _realRef>>
<<set _s to _realRef.stages[_sceneM]>>
<<else>>
/* Fallback if find fails */
<<set _s to $targetNPC.stages[_sceneM]>>
<</if>>
<</if>>
<</silently>>
<div class="narrative">
<<if ((_realRef || $targetNPC).resetFrom || {})[_sceneM] gte _s>>
<p style="color:#888; font-style:italic;"><<print $targetNPC.name>>'s body remembers what her mind had forgotten.</p>
<</if>>
<<if _s is 1>>
<<speech "Jasper">> "You don’t have to be afraid anymore. I’ve got you. Just let me in." <</speech>>
<p>A warm, safe feeling settles over $targetNPC.name. Jasper’s presence feels like the only place she belongs. The first roots of trust take hold.</p>
<<elseif _s is 2>>
<<speech "Jasper">> "Stay close to me. I’ll make sure nothing hurts you again. You trust me… don’t you?" <</speech>>
<p>$targetNPC.name finds herself drawn to Jasper constantly. His words feel like truth. His care feels like safety. She wants to follow wherever he leads.</p>
<<elseif _s is 3>>
<<speech $targetNPC.name>> "Jasper… I don’t know how to live without you anymore. Whatever you need, I’ll do it. Always." <</speech>>
<p>Total loyalty achieved. She is bound to him—unshakable, unbreakable, forever his.</p>
<</if>>
</div>
<<videoWall $targetNPC.name _s>>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><<silently>>
/* --- Init --- */
<<set _mID to ($activeTurn === "none" ? $playerID : $activeTurn)>>
<<set _cpu to $vices[_mID]>>
<<set _weapon to _cpu.weapon.toLowerCase()>>
<<set $outcome to "">>
<<set $interceptionNotice to null>>
<<set $targetNPC to null>>
<<set $targetMaster to null>>
<<set $transferredNPCs to []>>
<<set $chainTarget to null>>
<<set $chainVisited to []>>
<<set $mirrorPending to null>>
/* Clear any leftover Predator's Rush video override from a previous scene */
<<set $sceneMasterOverride to null>>
<<set _powerUsed to "">>
<<set _spentGauge to false>>
/* An AI must never begin an action with a strategy aimed at a Vice who
is already gone. Re-evaluate before stance, gauge, or target logic. */
<<set _hasStaleStrategyTarget to (_cpu.strategyTarget !== null
and (!$vices[_cpu.strategyTarget] or $vices[_cpu.strategyTarget].isEliminated))>>
<<if _hasStaleStrategyTarget>>
<<run setup.updateStrategy(_mID)>>
<</if>>
/* An elimination threat overrides any personality strategy (Hunting etc.)
immediately — not only when the strategy timer happens to expire. */
<<set _liveThreat to ["nathan", "josh", "jasper", "caldwell"].some(id =>
id !== _mID and !$vices[id].isEliminated and getEliminationScore(id, _mID) gte 4)>>
<<if _liveThreat and _cpu.strategy !== "Survival" and _cpu.strategy !== "Elimination">>
<<run setup.updateStrategy(_mID)>>
<</if>>
<<if $kaneQuest.active and setup.questGirl()>>
<<run setup.updateStrategy(_mID)>>
<</if>>
/* ============================================================
1. STATUS CHECKS
============================================================ */
<<if _cpu.silencedBy !== null>>
<<set $outcome to "SILENCED">>
<<elseif _cpu.jammedTimer gt 0>>
<<set $outcome to "JAMMED">>
<</if>>
/* ============================================================
2. CHOOSE STANCE
============================================================ */
<<if $outcome === "" and _cpu.following === null>>
<<if _cpu.gauge gte 20 and (_cpu.strategy === "Fortifying Position" or _cpu.strategy === "Survival")>>
<<if Math.random() lt 0.5>>
<<set $vices[_mID].following to "OWN_KEYS">>
<<run adjustGauge(_mID, -20)>>
<<set _powerUsed to "GUARDING DOMAIN">>
<</if>>
<<elseif _cpu.gauge gte 10 and _cpu.strategyTarget !== null and $vices[_cpu.strategyTarget].silencedBy === null
and not (_mID === "josh" and _cpu.ultType === "predators_rush" and $vices.josh.predatorTarget === _cpu.strategyTarget)>>
<<if Math.random() lt 0.5>>
<<set $vices[_mID].following to _cpu.strategyTarget>>
<<run adjustGauge(_mID, -10)>>
<<set _powerUsed to "SHADOWING RIVAL">>
<</if>>
<<elseif _cpu.gauge gte 10 and _cpu.strategy === "Kane Quest" and $kaneQuest.active and setup.questGirl()>>
/* Racing Kane's Quest: shadow the rival leading the race so their
next attempt on the quest girl can be intercepted. */
<<set _qShadowID to ["nathan", "josh", "jasper", "caldwell"]
.filter(id => id !== _mID and !$vices[id].isEliminated and $vices[id].silencedBy === null
and setup.questGirl().stages[id] gt 0)
.sort((a, b) => setup.questGirl().stages[b] - setup.questGirl().stages[a])[0] || null>>
<<if _qShadowID !== null and Math.random() lt 0.5>>
<<set $vices[_mID].following to _qShadowID>>
<<run adjustGauge(_mID, -10)>>
<<set _powerUsed to "SHADOWING RIVAL">>
<</if>>
<</if>>
<</if>>
/* ============================================================
3. ULTIMATE ACTIVATION (gauge = 100)
============================================================ */
/* A ready master elimination acts immediately instead of spending
the turn on an ultimate. Kane's Quest NO LONGER blocks Ultimate
spending: while a quest is active every AI is re-assigned the
"Kane Quest" strategy each turn, which used to pin CPUs at 100%
Resonance for the entire quest (reported: Caldwell idled at 100%
for 4 turns). They may now spend the gauge and keep racing after. */
<<set _questWinAvail to ($kaneQuest.active and setup.questGirl()
and setup.questGirl().stages[_mID] gte 2
and setup.questGirl().shieldTimer === 0)>>
/* Eternal Anchor recharges for its ultTimer window after each cast —
Caldwell cannot re-anchor (and does not spend) while it ticks. */
<<if $outcome === "" and _cpu.jammedTimer === 0 and _cpu.gauge gte 100 and _cpu.strategy !== "Elimination" and not _questWinAvail
and not (_mID === "caldwell" and $vices.caldwell.ultTimer gt 0)>>
<<set _preUltGauge to _cpu.gauge>>
<<run adjustGauge(_mID, -100)>>
<<if _mID === "nathan">>
<<set $vices.nathan.ultType to "social_pandemic">>
<<set $vices.nathan.ultTimer to 3>>
<<set _powerUsed to "SOCIAL PANDEMIC">>
/* Author ruling (unified ult cost): every ultimate uses one ACTION
for players and CPUs alike - never a free cast, never a hard
turn-end. ULT_ONLY spends the action and offers Continue
Operations when extra actions remain. */
<<set $outcome to "ULT_ONLY">>
<<elseif _mID === "josh">>
<<set $vices.josh.ultType to "predators_rush">>
<<set $vices.josh.ultTimer to 2>>
<<set $vices.josh.predatorStealsThisTurn to 0>>
<<set $vices.josh.predatorMirrors to []>>
<<set _validRivals to ["nathan", "jasper", "caldwell"].filter(id => !$vices[id].isEliminated and $vices[id].silencedBy === null)>>
<<if _validRivals.length === 0>>
<<set _validRivals to ["nathan", "jasper", "caldwell"].filter(id => !$vices[id].isEliminated)>>
<</if>>
<<if _validRivals.length gt 0>>
<<set _rScores to []>>
<<for _i to 0; _i lt _validRivals.length; _i++>>
<<set _rId to _validRivals[_i]>>
<<set _rCount to $roster.filter(c => c.owner === _rId).length>>
<<set _rKeys to $roster.filter(c => c.owner === _rId and $vices.josh.keys.includes(c.id)).length>>
<<run _rScores.push({id: _rId, score: (_rCount * 10) + (_rKeys * 5) + random(0, 20)})>>
<</for>>
<<run _rScores.sort((a,b) => b.score - a.score)>>
<<set _prevRushMark to $vices.josh.predatorTarget>>
/* Anti-spam: don't mark the same rival twice in a row when an
alternative exists and the repeat mark is not a survival
threat (elimination score 4+ against Josh). */
<<if _rScores.length gt 1 and _rScores[0].id === $vices.josh.predatorTarget and getEliminationScore(_rScores[0].id, "josh") lt 4>>
<<run _rScores.push(_rScores.shift())>>
<</if>>
<<set $vices.josh.predatorTarget to _rScores[0].id>>
/* Re-marking the rival from the previous hunt shortens it:
one of their turns, not two. */
<<if _rScores[0].id === _prevRushMark>>
<<set $vices.josh.ultTimer to 1>>
<</if>>
<<set $vices.josh.ultTargetName to $vices[_rScores[0].id].name>>
<</if>>
<<set _powerUsed to "PREDATOR'S RUSH → " + ($vices.josh.predatorTarget !== null ? $vices[$vices.josh.predatorTarget].name : "no target")>>
/* Predator's Rush uses the turn's action (unified ult cost).
With extra actions remaining, operations continue. */
<<set $outcome to "ULT_ONLY">>
<<elseif _mID === "jasper">>
<<set _jasperCanSilence to !["nathan","josh","caldwell"].some(id => $vices[id].silencedBy === "jasper")>>
<<if _jasperCanSilence>>
<<set $vices.jasper.ultType to "eclipse_silence">>
<<set _silenceDuration to 2>>
<<set $vices.jasper.ultTimer to _silenceDuration>>
<<set _validRivals to ["nathan","josh","caldwell"].filter(id => !$vices[id].isEliminated and $vices[id].silencedBy === null)>>
/* Anti-spam: never silence the same rival twice in a row when
another valid rival exists and the repeat target is not an
immediate survival threat (elimination score 4+ against
Jasper). Applies to every rival, player or CPU. */
<<set _repeatTarget to $vices.jasper.lastSilenceTarget>>
<<set _repeatIsThreat to (_repeatTarget !== null
and $vices[_repeatTarget]
and !$vices[_repeatTarget].isEliminated
and getEliminationScore(_repeatTarget, "jasper") gte 4)>>
<<if not _repeatIsThreat>>
<<set _nonRepeatRivals to _validRivals.filter(id => id !== _repeatTarget)>>
<<if _nonRepeatRivals.length gt 0>>
<<set _validRivals to _nonRepeatRivals>>
<</if>>
<</if>>
<<if _validRivals.length gt 0>>
<<set _rivalScores to []>>
<<for _i to 0; _i lt _validRivals.length; _i++>>
<<set _rId to _validRivals[_i]>>
<<set _rGirls to $roster.filter(c => c.owner === _rId).length>>
<<set _rKeys to $roster.filter(c => c.owner === _rId and $vices.jasper.keys.includes(c.id)).length>>
<<run _rivalScores.push({id: _rId, score: (_rGirls * 10) + (_rKeys * 20) + random(0, 40)})>>
<</for>>
<<run _rivalScores.sort((a,b) => b.score - a.score)>>
<<set _targetRival to _rivalScores[0].id>>
/* Re-silencing the rival from the previous activation
leaves them partially adapted: one turn, not two. */
<<if $vices.jasper.lastSilenceTarget === _targetRival>>
<<set _silenceDuration to 1>>
<<set $vices.jasper.ultTimer to 1>>
<</if>>
<<set $vices[_targetRival].silencedBy to "jasper">>
<<set $vices[_targetRival].silencedTimer to _silenceDuration>>
<<set $vices.jasper.lastSilenceTarget to _targetRival>>
<<set $vices.jasper.ultTargetName to $vices[_targetRival].name>>
<<set _powerUsed to "ECLIPSE SILENCE (" + _silenceDuration + "t) → " + $vices[_targetRival].name>>
<<set $outcome to "ULT_ONLY">>
<<else>>
/* No valid rival to silence — restore the spent gauge and
clear the phantom activation banner. */
<<set $vices.jasper.ultTimer to 0>>
<<set $vices.jasper.ultType to null>>
<<set $vices[_mID].gauge to _preUltGauge>>
<</if>>
<<else>>
/* A silence is still running — the ultimate cannot land yet,
so the gauge is not spent at all. */
<<set $vices[_mID].gauge to _preUltGauge>>
<</if>>
<<elseif _mID === "caldwell">>
<<set _validTargets to $roster.filter(function(c) {
/* Batch 42: the Anchor requires a genuine rival investment —
at least one rival at Stage 2+ on her. */
var hasRivalProgress = c.stages.nathan >= 2 || c.stages.josh >= 2 || c.stages.jasper >= 2;
var notCaldwellMaxed = !(c.owner === "caldwell" && c.stages.caldwell >= 3);
/* A girl claimed through a Kane challenge cannot be anchored */
/* A girl claimed through a pending Kane reward cannot be anchored. */
var kq = State.variables.kaneQuest;
var notQuestReward = !(kq.rewardGirlId === c.id && kq.winner !== null && !kq.rewardClaimed);
/* The Kane quest girl is never anchorable — during the race,
and until its reward has been fully resolved. */
var notQuestGirl = !(kq.npcId === c.id
&& (kq.active || (kq.winner !== null && !kq.rewardClaimed)));
/* Kane's Mark never fades: any girl who was EVER a quest
target is permanently unanchorable. */
var notKaneMarked = !c.kaneMarked;
return hasRivalProgress && notCaldwellMaxed && notQuestReward && notQuestGirl && notKaneMarked;
})>>
/* Channeled ultimates: with an enslaved Vice, Caldwell may wield
that Vice's ultimate instead of the Anchor. All casts share one
slot and the same two-full-day recharge. */
<<set _caAnchorScore to -1>>
<<if _validTargets.length gt 0>>
<<set _caAnchorScore to 60>>
<<for _caT range _validTargets>>
<<if Object.values(_caT.stages).some(s => s >= 3)>>
<<set _caAnchorScore to 110>>
<<break>>
<</if>>
<</for>>
<</if>>
<<set _caRivals to ["nathan", "josh", "jasper"].filter(id => !$vices[id].isEliminated and $vices[id].silencedBy === null)>>
<<if _caRivals.length is 0>>
<<set _caRivals to ["nathan", "josh", "jasper"].filter(id => !$vices[id].isEliminated)>>
<</if>>
<<set _caLeader to null>>
<<set _caLeaderOwned to 0>>
<<for _caR range _caRivals>>
<<set _caOwned to $roster.filter(c => c.owner === _caR).length>>
<<if _caOwned gt _caLeaderOwned>>
<<set _caLeaderOwned to _caOwned>>
<<set _caLeader to _caR>>
<</if>>
<</for>>
<<set _caRushScore to ($vices.caldwell.slaves.includes("josh") and _caLeader !== null ? _caLeaderOwned * 25 : -1)>>
<<set _caSilenceScore to ($vices.caldwell.slaves.includes("jasper") and _caLeader !== null
and not ["nathan", "josh", "jasper"].some(id => $vices[id].silencedBy === "caldwell") ? _caLeaderOwned * 20 + 30 : -1)>>
<<set _caPandemicScore to ($vices.caldwell.slaves.includes("nathan") ? 25 + $roster.filter(c => c.owner === "caldwell").length * 15 : -1)>>
<<if _caRushScore gt _caAnchorScore and _caRushScore gte _caSilenceScore and _caRushScore gte _caPandemicScore>>
<<set _caPrevMark to $vices.caldwell.predatorTarget>>
<<set $vices.caldwell.channelUlt to "predators_rush">>
<<set $vices.caldwell.predatorTarget to _caLeader>>
<<set $vices.caldwell.predatorStealsThisTurn to 0>>
<<set $vices.caldwell.predatorMirrors to []>>
<<set $vices.caldwell.channelTimer to (_caPrevMark === _caLeader ? 1 : 2)>>
<<set $vices.caldwell.ultTargetName to $vices[_caLeader].name>>
<<set $vices.caldwell.ultTimer to 2>>
<<set _powerUsed to "PREDATOR'S RUSH (via Josh) → " + $vices[_caLeader].name>>
<<set $outcome to "ULT_ONLY">>
<<elseif _caSilenceScore gt _caAnchorScore and _caSilenceScore gte _caPandemicScore>>
<<set $vices[_caLeader].silencedBy to "caldwell">>
<<set $vices[_caLeader].silencedTimer to 2>>
<<set $vices.caldwell.channelUlt to "eclipse_silence">>
<<set $vices.caldwell.channelTimer to 2>>
<<set $vices.caldwell.ultTargetName to $vices[_caLeader].name>>
<<set $vices.caldwell.ultTimer to 2>>
<<set _powerUsed to "ECLIPSE SILENCE (via Jasper) → " + $vices[_caLeader].name>>
<<set $outcome to "ULT_ONLY">>
<<elseif _caPandemicScore gt _caAnchorScore>>
<<set $vices.caldwell.channelUlt to "social_pandemic">>
<<set $vices.caldwell.channelTimer to 3>>
<<set $vices.caldwell.ultTimer to 2>>
<<set _powerUsed to "SOCIAL PANDEMIC (via Nathan)">>
<<set $outcome to "ULT_ONLY">>
<<elseif _validTargets.length gt 0>>
<<set $vices.caldwell.ultType to "eternal_anchor">>
/* One full blocked day after the casting day: the timer ticks
on Caldwell's own turn ends, and the casting day's end burns
the first tick — so 2 gives blocked X+1 only, free on X+2. */
<<set $vices.caldwell.ultTimer to 2>>
<<set _targetScores to []>>
<<set _allKeys to $vices.nathan.keys.concat($vices.josh.keys, $vices.jasper.keys, $vices.caldwell.keys)>>
<<set _allBackups to $vices.nathan.backups.concat($vices.josh.backups, $vices.jasper.backups, $vices.caldwell.backups)>>
<<for _i to 0; _i lt _validTargets.length; _i++>>
<<set _npc to _validTargets[_i]>>
<<set _tScore to random(0, 40)>>
<<if Object.values(_npc.stages).some(s => s >= 3)>> <<set _tScore += 80>> <</if>>
<<if _allKeys.includes(_npc.id)>> <<set _tScore += 40>> <</if>>
<<if _allBackups.includes(_npc.id)>> <<set _tScore += 20>> <</if>>
/* Reclaim weight: tearing a rival's grip off his OWN Key or
Spare protects his elimination vulnerability. */
<<set _rivalMax to Math.max(_npc.stages.nathan, _npc.stages.josh, _npc.stages.jasper)>>
<<if _rivalMax gte 2 and $vices.caldwell.keys.includes(_npc.id)>> <<set _tScore += 60>> <</if>>
<<if _rivalMax gte 2 and $vices.caldwell.backups.includes(_npc.id)>> <<set _tScore += 30>> <</if>>
<<run _targetScores.push({npc: _npc, score: _tScore})>>
<</for>>
<<run _targetScores.sort((a,b) => b.score - a.score)>>
<<set $anchorTarget to _targetScores[0].npc>>
<<set _powerUsed to "ETERNAL ANCHOR → " + $anchorTarget.name>>
/* Mark the anchor as the whole action BEFORE the async <<goto>>
fires, or this passage keeps running past it: a second target
pick, a second $actionsTaken increment, possibly a stray clash. */
<<set $outcome to "ANCHOR">>
<<goto "Caldwell_AnchorExecute">>
<<else>>
/* No girl has a rival at Stage 2+ to anchor — restore the spent gauge */
<<set $vices[_mID].gauge to _preUltGauge>>
<</if>>
<</if>>
<</if>>
/* ============================================================
4. MINOR UTILITY POWERS (50–84% gauge, one per turn)
CPUs use the SAME manifestation menu as the player, chosen by
strategy. 85%+ is banked toward the Ultimate (which fires at
100 before this section can run).
Fortifying / Survival / Consolidating → VICE SHIELD on an
owned Key/Backup at Stage 1–2 (prefer girls that already
carry rival stages); PULSE SCOUT fallback.
Hunting / Grudge Match / Revenge / Elimination / Sowing
Discord → REVENGE SCENT on the strategy target (or the
rival with the most owned girls if untargeted/already
cursed); VICE SHIELD fallback.
Expanding Influence / Observing Campus → PULSE SCOUT
(VICE SHIELD fallback).
Kane Quest → race support against the other masters: REVENGE
SCENT on the rival closest to the quest girl, VICE SHIELD on
her when a rival threatens but cursing is unavailable,
PULSE SCOUT otherwise.
Stances (Guarding/Shadowing) and Force Success (10%) spending
remain as-is in their own sections.
============================================================ */
<<if $outcome === "" and _powerUsed === "">>
<<if _cpu.gauge gte 50 and _cpu.gauge lt 85>>
/* --- Scout-makes-sense rule (author ruling): if even the
BEST reachable girl is hard to find (availability 2 or
less -> 60% or worse, no slave auto-find), a
guaranteed find this turn beats any shield or scent.
Cast Pulse Scout first, regardless of strategy. --- */
<<set _scoutBest to 0>>
<<set _scoutCands to $roster.filter(function(c) {
var locked = Object.values(c.stages).some(s => s >= 3);
var isShielded = (c.shieldTimer > 0 && c.shieldedBy !== _mID);
return c.stages[_mID] < 3 && !locked && !isShielded;
})>>
<<for _scI to 0; _scI lt _scoutCands.length; _scI++>>
<<set _scGirl to _scoutCands[_scI]>>
<<set _scFind to _scGirl.avail[_mID]>>
<<if _cpu.slaves.length gt 0>>
<<set _scAuto to false>>
<<for _scS range _cpu.slaves>>
<<if $vices[_scS].keys.includes(_scGirl.id) or $vices[_scS].backups.includes(_scGirl.id)>>
<<set _scAuto to true>>
<</if>>
<</for>>
<<if _scAuto>> <<set _scFind to 3>> <</if>>
<</if>>
<<if _scFind gt _scoutBest>> <<set _scoutBest to _scFind>> <</if>>
<</for>>
<<if _scoutBest gt 0 and _scoutBest lte 2>>
<<set $vices[_mID].scoutActive to true>>
<<run adjustGauge(_mID, -50)>>
<<set _powerUsed to "PULSE SCOUT (hard to find anyone)">>
<</if>>
/* --- Defensive strategies: shield what matters --- */
<<if _cpu.strategy === "Fortifying Position" or _cpu.strategy === "Survival" or _cpu.strategy === "Consolidating Power">>
<<set _shieldPool to $roster.filter(c =>
(_cpu.keys.includes(c.id) or _cpu.backups.includes(c.id))
and c.stages[_mID] gt 0 and c.stages[_mID] lt 3
and c.shieldTimer === 0
and !Object.values(c.stages).some(s => s >= 3))>>
<<set _contested to _shieldPool.filter(c =>
(c.stages.nathan + c.stages.josh + c.stages.jasper + c.stages.caldwell - c.stages[_mID]) gt 0)>>
<<set _shTarget to (_contested.length gt 0 ? _contested.random() : (_shieldPool.length gt 0 ? _shieldPool.random() : null))>>
<<if _shTarget>>
<<set _shTarget.shieldTimer to 3>>
<<set _shTarget.shieldedBy to _mID>>
<<run adjustGauge(_mID, -50)>>
<<set _powerUsed to "VICE SHIELD → " + _shTarget.name>>
<<else>>
<<set $vices[_mID].scoutActive to true>>
<<run adjustGauge(_mID, -50)>>
<<set _powerUsed to "PULSE SCOUT">>
<</if>>
<</if>>
/* --- Kane's Quest: race support against the other masters --- */
<<if _powerUsed === "" and _cpu.strategy === "Kane Quest" and $kaneQuest.active and setup.questGirl()>>
<<set _qGirl to setup.questGirl()>>
<<set _qThreat to ["nathan", "josh", "jasper", "caldwell"]
.some(id => id !== _mID and !$vices[id].isEliminated and _qGirl.stages[id] gt 0)>>
<<set _qRivalID to ["nathan", "josh", "jasper", "caldwell"]
.filter(id => id !== _mID and !$vices[id].isEliminated and !$vices[id].revengeScented
and $vices[id].silencedBy === null and _qGirl.stages[id] gt 0)
.sort((a, b) => _qGirl.stages[b] - _qGirl.stages[a])[0] || null>>
<<if _qRivalID === null and _qThreat>>
<<set _qRivalID to ["nathan", "josh", "jasper", "caldwell"]
.filter(id => id !== _mID and !$vices[id].isEliminated and !$vices[id].revengeScented
and _qGirl.stages[id] gt 0)
.sort((a, b) => _qGirl.stages[b] - _qGirl.stages[a])[0] || null>>
<</if>>
<<if _qRivalID !== null>>
<<set $vices[_qRivalID].revengeScented to true>>
<<run adjustGauge(_mID, -50)>>
<<set _powerUsed to "REVENGE SCENT → " + $vices[_qRivalID].name>>
<<elseif _qThreat and _qGirl.stages[_mID] gt 0 and _qGirl.stages[_mID] lt 3 and _qGirl.shieldTimer === 0>>
<<set _qGirl.shieldTimer to 3>>
<<set _qGirl.shieldedBy to _mID>>
<<run adjustGauge(_mID, -50)>>
<<set _powerUsed to "VICE SHIELD → " + _qGirl.name>>
<<else>>
<<set $vices[_mID].scoutActive to true>>
<<run adjustGauge(_mID, -50)>>
<<set _powerUsed to "PULSE SCOUT">>
<</if>>
<</if>>
/* --- Aggressive strategies: curse a rival --- */
<<if _powerUsed === "" and (_cpu.strategy === "Hunting" or _cpu.strategy === "Grudge Match" or _cpu.strategy === "Revenge" or _cpu.strategy === "Elimination" or _cpu.strategy === "Sowing Discord")>>
<<set _scentID to null>>
<<if _cpu.strategyTarget !== null and !$vices[_cpu.strategyTarget].isEliminated and !$vices[_cpu.strategyTarget].revengeScented>>
<<set _scentID to _cpu.strategyTarget>>
<</if>>
<<if _scentID === null>>
<<set _scentables to ["nathan", "josh", "jasper", "caldwell"].filter(id =>
id !== _mID and !$vices[id].isEliminated and !$vices[id].revengeScented
and $vices[id].silencedBy === null)>>
<<if _scentables.length === 0>>
<<set _scentables to ["nathan", "josh", "jasper", "caldwell"].filter(id =>
id !== _mID and !$vices[id].isEliminated and !$vices[id].revengeScented)>>
<</if>>
<<if _scentables.length gt 0>>
<<set _scentables.sort((a, b) =>
$roster.filter(c => c.owner === b).length - $roster.filter(c => c.owner === a).length)>>
<<set _scentID to _scentables[0]>>
<</if>>
<</if>>
<<if _scentID !== null>>
<<set $vices[_scentID].revengeScented to true>>
<<run adjustGauge(_mID, -50)>>
<<set _powerUsed to "REVENGE SCENT → " + $vices[_scentID].name>>
<</if>>
<</if>>
/* --- Info strategies: scout ahead --- */
<<if _powerUsed === "" and (_cpu.strategy === "Expanding Influence" or _cpu.strategy === "Observing Campus")>>
<<set $vices[_mID].scoutActive to true>>
<<run adjustGauge(_mID, -50)>>
<<set _powerUsed to "PULSE SCOUT">>
<</if>>
/* --- Fallback for aggressive CPUs with nobody to curse:
shield a contested girl like the defenders do. --- */
<<if _powerUsed === "" and (_cpu.strategy === "Hunting" or _cpu.strategy === "Grudge Match" or _cpu.strategy === "Revenge" or _cpu.strategy === "Elimination" or _cpu.strategy === "Sowing Discord")>>
<<set _shieldPool2 to $roster.filter(c =>
(_cpu.keys.includes(c.id) or _cpu.backups.includes(c.id))
and c.stages[_mID] gt 0 and c.stages[_mID] lt 3
and c.shieldTimer === 0
and !Object.values(c.stages).some(s => s >= 3))>>
<<set _contested2 to _shieldPool2.filter(c =>
(c.stages.nathan + c.stages.josh + c.stages.jasper + c.stages.caldwell - c.stages[_mID]) gt 0)>>
<<set _shTarget2 to (_contested2.length gt 0 ? _contested2.random() : (_shieldPool2.length gt 0 ? _shieldPool2.random() : null))>>
<<if _shTarget2>>
<<set _shTarget2.shieldTimer to 3>>
<<set _shTarget2.shieldedBy to _mID>>
<<run adjustGauge(_mID, -50)>>
<<set _powerUsed to "VICE SHIELD → " + _shTarget2.name>>
<</if>>
<</if>>
<</if>>
<</if>>
/* ============================================================
5. SMART TARGETING
============================================================ */
<<if $outcome === "">>
/* Elimination scan */
<<for _vID range ["nathan", "josh", "jasper", "caldwell"]>>
<<if _vID !== _mID and !$vices[_vID].isEliminated and checkVulnerability(_mID, _vID)>>
<<set $targetMaster to $vices[_vID]>>
<<set $outcome to "ELIMINATION_SUCCESS">>
<<set $targetNPC to null>>
<<break>>
<</if>>
<</for>>
/* NPC targeting */
<<if $targetMaster === null>>
<<set _validBase to $roster.filter(function(c) {
var locked = Object.values(c.stages).some(s => s >= 3);
var isQuestGirl = ($kaneQuest.active && c.id === $kaneQuest.npcId);
var isShielded = (c.shieldTimer > 0 && c.shieldedBy !== _mID && !isQuestGirl);
if (isShielded) return false;
return c.stages[_mID] < 3 && !locked;
})>>
<<set _pool to []>>
/* One conquest from winning the race: finish it. This outranks
personality strategies (including Survival — the reward is a
full Resonance refill) and keeps the quest pool undiluted. */
<<if _questWinAvail>>
<<set _pool to _validBase.filter(c => c.id === $kaneQuest.npcId)>>
<<elseif _cpu.strategy === "Survival">>
<<set _pool to _validBase.filter(c => c.stages[_cpu.strategyTarget] gt 0 || _cpu.keys.includes(c.id))>>
<<elseif _cpu.strategy === "Elimination">>
<<set _vic to $vices[_cpu.strategyTarget]>>
<<set _pool to _validBase.filter(c => _vic.keys.includes(c.id) || _vic.backups.includes(c.id))>>
<<elseif _cpu.strategy === "Grudge Match" or _cpu.strategy === "Hunting" or _cpu.strategy === "Revenge">>
<<set _vic to $vices[_cpu.strategyTarget]>>
<<set _pool to _validBase.filter(c => c.stages[_cpu.strategyTarget] gt 0 || _vic.keys.includes(c.id))>>
<<elseif _cpu.strategy === "Fortifying Position">>
<<set _pool to _validBase.filter(c => _cpu.keys.includes(c.id) || _cpu.backups.includes(c.id))>>
<<elseif _cpu.strategy === "Expanding Influence">>
<<set _pool to _validBase.filter(c => Object.values(c.stages).every(s => s === 0))>>
<<elseif _cpu.strategy === "Sowing Discord">>
<<set _pool to _validBase.filter(c => ["nathan", "josh", "jasper", "caldwell"].some(id => id !== _mID && c.stages[id] gt 0))>>
<<elseif _cpu.strategy === "Observing Campus">>
<<set _sorted to _validBase.slice().sort((a,b) => b.weakness[_weapon] - a.weakness[_weapon])>>
<<set _pool to _sorted.slice(0, 4)>>
<<elseif _cpu.strategy === "Kane Quest">>
<<set _qGirl3 to setup.questGirl()>>
<<if _qGirl3>>
<<set _pool to _validBase.filter(c => c.id === _qGirl3.id)>>
<</if>>
<</if>>
/* Weighting below never dilutes an active Kane race:
the quest girl must keep the pool to herself. */
<<if not _questWinAvail and _cpu.strategy neq "Kane Quest">>
/* Caldwell Detention weighting */
<<if _mID === "caldwell" and $detentionTarget !== null and $detentionTarget !== "ALL_STUDENTS">>
<<set _detainedNPC to _validBase.find(c => c.id === $detentionTarget)>>
<<if _detainedNPC>>
<<set _pool to _pool.concat([_detainedNPC, _detainedNPC, _detainedNPC, _detainedNPC])>>
<</if>>
<</if>>
/* spiteNPCs weighting */
<<if _cpu.spiteNPCs and _cpu.spiteNPCs.length gt 0>>
<<for _spID range _cpu.spiteNPCs>>
<<set _spNPC to _validBase.find(c => c.id === _spID)>>
<<if _spNPC>>
<<set _pool to _pool.concat([_spNPC, _spNPC, _spNPC, _spNPC])>>
<</if>>
<</for>>
<</if>>
/* ============================================================
PERK-AWARE WEIGHTING — nudge toward high-value girls
setup.perkWeight(mID, girl) = claim value + affinity + synergy.
Girls with weight get duplicated in the pool (gentle tilt).
============================================================ */
<<set _perkPool to []>>
<<for _pwI to 0; _pwI lt _pool.length; _pwI++>>
<<set _pwGirl to _pool[_pwI]>>
<<set _pwN to setup.perkWeight(_mID, _pwGirl.id)>>
<<run _perkPool.push(_pwGirl)>>
<<for _pwD to 0; _pwD lt _pwN and _pwD lt 4; _pwD++>>
<<run _perkPool.push(_pwGirl)>>
<</for>>
<</for>>
<<if _perkPool.length gt 0>> <<set _pool to _perkPool>> <</if>>
/* Reachability: duplicate pool entries by availability, so the
AI favors girls it can actually locate. */
<<set _availPool to []>>
<<for _avI to 0; _avI lt _pool.length; _avI++>>
<<set _avGirl to _pool[_avI]>>
<<run _availPool.push(_avGirl)>>
<<for _avD to 1; _avD lt _avGirl.avail[_mID]; _avD++>>
<<run _availPool.push(_avGirl)>>
<</for>>
<</for>>
<<if _availPool.length gt 0>> <<set _pool to _availPool>> <</if>>
/* ============================================================
EXPECTED-SUCCESS WEIGHTING (author ruling): the AI weighs
find chance, conquest chance, and its ability to force a
failed connection with gauge. Girls it can reliably locate
AND conquer dominate the pool; low-odds girls remain only
as fallbacks. Weight = find level x weakness, capped. */
<<set _evPool to []>>
<<for _evI to 0; _evI lt _pool.length; _evI++>>
<<set _evGirl to _pool[_evI]>>
<<set _evFind to _evGirl.avail[_mID]>>
/* Inheritance: a slave's conquered girls are auto-found. */
<<if _cpu.slaves.length gt 0>>
<<set _evAuto to false>>
<<for _evS range _cpu.slaves>>
<<if $vices[_evS].keys.includes(_evGirl.id) or $vices[_evS].backups.includes(_evGirl.id)>>
<<set _evAuto to true>>
<</if>>
<</for>>
<<if _evAuto>> <<set _evFind to 3>> <</if>>
<</if>>
/* Gauge spend: with 10%+ in reserve a failed find can be
forced, so low availability matters far less; a broke
CPU weighs hard-to-find girls down. */
<<if _cpu.gauge gte 10>> <<set _evFind to Math.min(3, _evFind + 1)>> <</if>>
<<set _evW to _evFind * _evGirl.weakness[_weapon]>>
<<run _evPool.push(_evGirl)>>
<<for _evD to 1; _evD lt _evW and _evD lt 12; _evD++>>
<<run _evPool.push(_evGirl)>>
<</for>>
<</for>>
<<if _evPool.length gt 0>> <<set _pool to _evPool>> <</if>>
<</if>> /* end race-purity gate */
/* HUNTING/ELIMINATION: break the rival's Sentinel before their Keys */
<<if (_cpu.strategy === "Hunting" or _cpu.strategy === "Elimination" or _cpu.strategy === "Grudge Match" or _cpu.strategy === "Revenge") and _cpu.strategyTarget and !$vices[_cpu.strategyTarget].isEliminated>>
<<set _sentGirls to $roster.filter(function(c) { return c.stages[_cpu.strategyTarget] gt 0 and setup.getPerk(c.id) === "sentinel" and _validBase.some(function(v) { return v.id === c.id; }); })>>
<<if _sentGirls.length gt 0>>
<<set _pool to _pool.concat([_sentGirls[0], _sentGirls[0], _sentGirls[0], _sentGirls[0], _sentGirls[0], _sentGirls[0]])>>
<</if>>
<</if>>
/* SURVIVAL: steal the attacker's Devotees (gauge denial) */
<<if _cpu.strategy === "Survival" and _cpu.strategyTarget and !$vices[_cpu.strategyTarget].isEliminated>>
<<set _devGirls to $roster.filter(function(c) { return c.stages[_cpu.strategyTarget] gt 0 and setup.getPerk(c.id) === "devotee" and _validBase.some(function(v) { return v.id === c.id; }); })>>
<<if _devGirls.length gt 0>>
<<set _pool to _pool.concat([_devGirls[0], _devGirls[0], _devGirls[0], _devGirls[0]])>>
<</if>>
<</if>>
/* Fallback */
<<if _pool.length === 0>> <<set _pool to _validBase>> <</if>>
/* Do not retry girls this master failed to locate earlier today. */
<<if _cpu.failedFinds and _cpu.failedFinds.length gt 0 and _pool.length gt 1 and not _questWinAvail and _cpu.strategy neq "Kane Quest">>
<<set _retryFree to _pool.filter(c => !_cpu.failedFinds.includes(c.id))>>
<<if _retryFree.length gt 0>> <<set _pool to _retryFree>> <</if>>
<</if>>
/* Repeat-malus awareness (batch 42): a girl already pushed at
this turn is ON GUARD (-30% to her find AND conquest rolls per
attempt). Prefer unguarded girls; keep a guarded one only when
she is the sole option or a Kane race target. */
<<if $attemptLog and _pool.length gt 1 and not _questWinAvail and _cpu.strategy neq "Kane Quest">>
<<set _unguarded to []>>
<<for _ug range _pool>>
<<if not $attemptLog[_ug.id]>>
<<run _unguarded.push(_ug)>>
<</if>>
<</for>>
<<if _unguarded.length gt 0>> <<set _pool to _unguarded>> <</if>>
<</if>>
<<if _pool.length gt 0>>
<<set $targetNPC to _pool.random()>>
<<else>>
<<set $outcome to "NO_TARGETS">>
<</if>>
<</if>>
<</if>>
/* ============================================================
6. COMBAT RESOLUTION
============================================================ */
<<include "Action_EliminationProcess">>
<<if $outcome === "ELIMINATION_SUCCESS" and _mID === $playerID>> <<goto "Player_Display">> <</if>>
<<if $targetNPC !== null and $outcome === "">>
<<set _scoutBypass to _cpu.scoutActive>>
<<set _actor to _cpu>>
<<set _maxAttempts to 3>>
<<include "Action_ClashCheck">>
/* CRITICAL: if a clash was triggered, stop here.
Clash_Event already handled the stage increment.
Continuing would run Action_ConquestRoll and double-increment. */
<<if $outcome !== "CLASH">>
<<include "Action_ConquestRoll">>
/* --------------------------------------------------------
CPU GAUGE SPEND
On find or conquest failure, 60% base chance to spend
10% gauge and force success. Boosted to 90% for high-
value targets (own keys, elimination strategy targets).
-------------------------------------------------------- */
<<if ($outcome === "FIND_TOTAL_FAIL" or $outcome === "CONQUEST_FAIL") and _cpu.gauge gte 10>>
<<set _spendScore to 0>>
<<if _cpu.keys.includes($targetNPC.id)>> <<set _spendScore += 2>> <</if>>
<<if _cpu.backups.includes($targetNPC.id)>> <<set _spendScore += 1>> <</if>>
<<if _cpu.spiteNPCs.includes($targetNPC.id)>> <<set _spendScore += 1>> <</if>>
<<if _cpu.strategy === "Elimination" or _cpu.strategy === "Survival">> <<set _spendScore += 2>> <</if>>
/* Kane priority includes a strong willingness to spend gauge
rather than abandon the marked girl after one failed roll. */
<<if _cpu.strategy === "Kane Quest">> <<set _spendScore += 2>> <</if>>
<<set _spendChance to (_spendScore gte 2 ? 90 : 60)>>
<<if Math.random() * 100 lt _spendChance>>
<<run adjustGauge(_mID, -10)>>
<<set _spentGauge to true>>
<<if $outcome === "FIND_TOTAL_FAIL">>
/* Forced find — still roll conquer */
<<set _mult to $targetNPC.weakness[_weapon]>>
<<set _friends to $socialMap[$targetNPC.id] || []>>
<<if $activeEclipse.nathanWeb and _mID === "nathan">>
<<if _friends.some(fID => { var r = $roster.find(r => r.id === fID); return r !== undefined and r.stages.nathan === 3; })>>
<<set _mult += 3>>
<</if>>
<</if>>
<<if $omenData and $omenData.master === _mID and $omenData.npc === $targetNPC.id>>
<<set _mult += 1>>
<</if>>
<<if _cpu.revengeScented>>
<<set _mult to Math.max(1, _mult - 2)>>
<<set $vices[_mID].revengeScented to false>>
<</if>>
/* Same-girl repeat malus, identical to the normal roll:
-30pp per earlier attempt, applied inside
rollToConquer. The attempt is logged AFTER the roll —
the engine penalty reads the PRIOR count. */
<<set $repeatMalus to 30 * ($attemptLog[$targetNPC.id] || 0)>>
<<if rollToConquer(_mult, _mID, $targetNPC.id)>>
<<set $attemptLog[$targetNPC.id] to ($attemptLog[$targetNPC.id] || 0) + 1>>
<<gaugeSpendSuccess>>
<<else>>
/* Conquer failed even after forced find — accept loss */
<<set $attemptLog[$targetNPC.id] to ($attemptLog[$targetNPC.id] || 0) + 1>>
<<set $outcome to "CONQUEST_FAIL">>
<<set _spentGauge to false>>
<</if>>
<<else>>
/* Forced conquest — still an attempt on her this turn
for the repeat malus (player path parity, batch 42). */
<<set $attemptLog[$targetNPC.id] to ($attemptLog[$targetNPC.id] || 0) + 1>>
<<gaugeSpendSuccess>>
<</if>>
<</if>>
<</if>>
<<if _mID === $playerID>> <<goto "Player_Display">> <</if>>
<</if>>
<</if>>
/* ============================================================
7. GLOBAL ACTION INCREMENT
============================================================ */
<<if $outcome !== "CLASH" and $outcome !== "SUCCESS" and $outcome !== "ELIMINATION_SUCCESS" and $outcome !== "ULT_ONLY" and $outcome !== "ANCHOR">>
<<set $actionsTaken += 1>>
<</if>>
/* ULT_ONLY: ult was used but no action taken — treat as action spent */
/* Find-failure memory: a girl this master could not locate today is
set aside until tomorrow (or until she is reached). */
<<if $targetNPC !== null and $targetNPC !== undefined>>
<<if $outcome === "FIND_TOTAL_FAIL">>
<<set $vices[_mID].failedFinds to ($vices[_mID].failedFinds || []).filter(id => id !== $targetNPC.id).concat([$targetNPC.id])>>
<<elseif $outcome === "SUCCESS" and $vices[_mID].failedFinds>>
<<set $vices[_mID].failedFinds to $vices[_mID].failedFinds.filter(id => id !== $targetNPC.id)>>
<</if>>
<</if>>
<<if $outcome === "ULT_ONLY">> <<set $actionsTaken += 1>> <</if>>
<</silently>>\
<<if $outcome !== "CLASH">>\
<h1>Day $gameDay — Turn: <<print _cpu.name>></h1>
<div class="cpu-log" style="border: 1px solid #00ff00; padding: 20px; background: #001100; font-family: monospace; color: #0f0; line-height: 1.5;">
<<if $interceptionNotice !== null and $interceptionNotice !== undefined>>
<p style="color:#ffaa00; font-weight:bold;">
[PROTECTIVE INTERFERENCE]: <<print $interceptionNotice.protectorName>> stepped in to protect <<print $interceptionNotice.protectedName>> and became the target.
</p>
<<set $interceptionNotice to null>>
<</if>>
<<if _powerUsed !== "" and $outcome !== "ULT_ONLY" and $outcome !== "ANCHOR">>
<p style="color: #ffcc00;">[POWER ACTIVATED]: <<print _powerUsed>></p><br>
<</if>>
<<if $outcome === "SILENCED">>
<p style="color: #666;">[ECLIPSED]: Resonance suppressed by <<print $vices[_cpu.silencedBy].name>>. Skipping turn.</p>
<br>[[Pass Turn|EndTurnLogic]]
<<elseif $outcome === "JAMMED">>
<p style="color: #888;">[JAMMED]: Signal disrupted. Skipping turn.</p>
<br>[[Pass Turn|EndTurnLogic]]
<<elseif $outcome === "SUCCESS" or $outcome === "ELIMINATION_SUCCESS">>
<p>[SYSTEM]: Target acquired — <<print ($outcome === "SUCCESS" ? $targetNPC.name : $targetMaster.name.toUpperCase())>></p>
<<if $repeatMalus gt 0>>
<p style="color:#ffaa00;">[ON GUARD]: -<<print $repeatMalus>>% — repeated attempt on her this turn.</p>
<</if>>
<<if _spentGauge>>
<p style="color: #ffcc00; font-size: 0.85em;">[RESONANCE SPENT -10%]: Master forced the connection.</p>
<</if>>
<<if $chainTarget !== null>>
<p style="color: #ff66cc; animation: pulse 1s infinite;">[CHAIN REACTION PENDING: <<print $chainTarget.name>>]</p>
<</if>>
<br>
<<if $mirrorPending !== null and $mirrorPending.eclipse>>
<p style="color: #ff33cc; animation: pulse 1s infinite;">
[APEX PREDATION]: Josh snatches <<print $mirrorPending.npcName>> out from under <<print _cpu.name>>... the conquest is his.
</p>
<<link "Watch Interaction" $sceneToLoad>><</link>>
<<set $mirrorPending to null>>
<<elseif $mirrorPending !== null>>
/* Predator's Rush STEALS the scene: the rival's own scene never
plays — Josh's scene does. Single link, no sequence. */
<p style="color: #ff33cc; animation: pulse 1s infinite;">
[PREDATOR'S RUSH]: Josh's influence slips in on <<print $mirrorPending.npcName>>... he steals the scene.
</p>
<<link "Watch Interaction" $sceneToLoad>><</link>>
<<set $mirrorPending to null>>
<<else>>
<<link "Watch Interaction" $sceneToLoad>><</link>>
<</if>>
<<elseif $outcome === "ULT_ONLY">>
<p style="color: #ffcc00;">[ULTIMATE ACTIVATED]: <<print _powerUsed>></p>
<p>The power surges — but the action is spent. The master withdraws to observe the effect.</p>
<<set _totalMoves to (1 + $extraActions[_mID])>>
<<if $actionsTaken lt _totalMoves>>
<br>[[Continue Operations|CPU_Process]]
<<else>>
<br>[[Pass Turn|EndTurnLogic]]
<</if>>
<<elseif $outcome === "ANCHOR">>
<p style="color: #ffcc00;">[POWER ACTIVATED]: ETERNAL ANCHOR — subject bound.</p>
<p>The anchor is being driven home...</p>
<<elseif $outcome === "JOSH_STEAL_BLOCKED">>
<p style="color:#ff33cc; font-weight:bold;">[APEX PREDATION]: Josh ambushed <<print _cpu.name>>'s conquest of <<print $targetNPC.name>> —</p>
<p><<print _cpu.name>> spent 40% Resonance to shield the attempt. The conquest was aborted and the action refunded.</p>
<<set _totalMoves to (1 + $extraActions[_mID])>>
<<if $actionsTaken lt _totalMoves>>
<br>[[Continue Operations|CPU_Process]]
<<else>>
<br>[[Pass Turn|EndTurnLogic]]
<</if>>
<<elseif $outcome === "NO_TARGETS">>
<p>[SYSTEM]: Board saturated. No valid targets remain.</p>
<<set _totalMoves to (1 + $extraActions[_mID])>>
<<if $actionsTaken lt _totalMoves>>
<br>[[Continue Operations|CPU_Process]]
<<else>>
<br>[[Pass Turn|EndTurnLogic]]
<</if>>
<<else>>
<p>[SYSTEM]: Operation failed.</p>
<<if $outcome === "FIND_TOTAL_FAIL" and $findMalus and $findMalus gt 0>>
<p style="color:#ffaa00;">[ON GUARD]: -<<print $findMalus>>% — repeated attempt on her this turn.</p>
<<elseif $outcome === "CONQUEST_FAIL" and $repeatMalus gt 0>>
<p style="color:#ffaa00;">[ON GUARD]: -<<print $repeatMalus>>% — repeated attempt on her this turn.</p>
<</if>>
<<set _totalMoves to (1 + $extraActions[_mID])>>
<<if $actionsTaken lt _totalMoves>>
<br>[[Continue Operations|CPU_Process]]
<<else>>
<br>[[End Turn|EndTurnLogic]]
<</if>>
<</if>>
</div>
<</if>><<nobr>>
<h1 style="text-align:center; color:#fff; letter-spacing:3px; margin-bottom:18px;">THE CONQUEST BOARD</h1>
<div class="character-board" style="display:flex; flex-direction:column; gap:10px;">
<<set _viceIDs to ["nathan", "josh", "jasper", "caldwell"]>>
<<for _vID range _viceIDs>>
<<set _v to $vices[_vID]>>
<<set _wCol to (_v.weapon === "Love" ? "#00ffcc" : _v.weapon === "Lust" ? "#ff33cc" : _v.weapon === "Trust" ? "#ffcc00" : "#ff6600")>>
<div @style="'display:flex; align-items:flex-start; border:1px solid #333; padding:10px 12px; background:#0a0a0a; border-radius:8px; gap:14px;' + (_v.isEliminated ? 'opacity:0.45; filter:grayscale(100%);' : '')">
/* --- MASTER COLUMN (compact) --- */
<div style="width:112px; flex-shrink:0; text-align:center;">
<img @src="'img/Player/' + _v.name + '.jpg'" style="width:76px; height:76px; border-radius:50%; border:2px solid @_wCol; object-fit:cover;">
<div style="color:#00ffcc; font-weight:bold; font-size:0.95em; margin:5px 0 2px 0;"><<print _v.name>></div>
<<if !_v.isEliminated>>
<div style="margin:2px auto; width:88px; height:6px; background:#222; border-radius:3px; overflow:hidden;">
<div @style="'height:100%; background:' + _wCol + '; width:' + _v.gauge + '%;'"></div>
</div>
<div style="font-size:0.6em; color:#666;"><<print _v.gauge>>%</div>
<div style="font-size:0.6em; color:#888; line-height:1.25; margin-top:3px;">
<<print _v.strategy || "—">>
<<if _v.strategyTarget !== null>> → <<print $vices[_v.strategyTarget].name>><</if>>
</div>
<</if>>
<<if _v.isEliminated>>
<<if _v.master !== null>>
<div style="color:#ff00ff; font-size:0.65em; font-weight:bold; border:1px solid #ff00ff; padding:2px; margin-top:4px;">SLAVE TO <<print $vices[_v.master].name.toUpperCase()>></div>
<<else>>
<div style="color:red; font-size:0.65em; font-weight:bold; border:1px solid red; padding:2px; margin-top:4px;">ELIMINATED</div>
<</if>>
<<else>>
<<if isTranscendent(_vID)>>
<div style="color:gold; font-size:0.6em; font-weight:bold; text-shadow:0 0 5px orange; margin-top:3px;">✦ TRANSCENDENT</div>
<</if>>
<<if _v.silencedBy !== null>>
<div style="color:#666; font-size:0.6em; font-weight:bold; border:1px solid #444; padding:2px; margin-top:3px;">SILENCED (<<print _v.silencedTimer>>t)</div>
<</if>>
<<if _v.strategy === "Grudge Match" and _v.strategyTarget !== null and $vices[_v.strategyTarget]>>
<div style="background:#600; color:#fff; font-size:0.6em; font-weight:bold; padding:2px; margin-top:3px; animation:pulse 1.5s infinite;">⚔ <<print $vices[_v.strategyTarget].name.toUpperCase()>></div>
<</if>>
<<if _v.revengeAgainst !== null>>
<div style="background:#222; color:#888; font-size:0.6em; font-weight:bold; padding:2px; margin-top:3px; border:1px solid #444;">⚡ <<print $vices[_v.revengeAgainst].name.toUpperCase()>><<if _v.strategy neq "Revenge">> (Q)<</if>></div>
<</if>>
<<if _v.ultTimer gt 0>>
<div style="color:#ffcc00; font-size:0.6em; border:1px solid #ffcc00; padding:2px; margin-top:3px;"><<print (_v.ultType || "ULT").replace("_"," ").toUpperCase()>> (<<print _v.ultTimer>>t)</div>
<</if>>
<</if>>
</div>
/* --- SUBJECTS STRIP (compact cards) --- */
<div style="display:flex; flex-wrap:wrap; gap:8px; flex-grow:1; align-content:flex-start;">
<<set _engaged to $roster.filter(function(c) { return c.stages[_vID] > 0; })>>
<<if _engaged.length is 0>>
<p style="color:#444; font-style:italic; font-size:0.85em; align-self:center; margin:0;">No subjects yet.</p>
<<else>>
<<for _c range _engaged>>
<<set _stage to _c.stages[_vID]>>
<<set _isMax to (_stage gte 3)>>
<<set _isOwned to (_c.owner === _vID)>>
/* Fully conquered by ANOTHER master — dead progress for this
master: mark the card with a cross. The owner himself is
preferred as the taker when he holds the Stage 3. A girl
this master has completed himself is never crossed. */
<<set _takenBy to (_isMax ? null :
((_c.owner !== null and _c.owner !== _vID and _c.stages[_c.owner] gte 3)
? _c.owner
: (["nathan", "josh", "jasper", "caldwell"].filter(id => id !== _vID and _c.stages[id] gte 3)[0] || null)))>>
<<set _imgFile to (_isMax ? "PortraitCorr.jpg" : "Portrait.jpg")>>
<<set _borderCol to (_isMax ? "#ff00ff" : _isOwned ? "#00ffcc" : "#555")>>
<div @style="'width:78px; text-align:center; padding:3px; border-radius:6px; border:1px solid ' + _borderCol + '; background:#111; position:relative;'">
<<if _takenBy>>
<div style="position:absolute; top:2px; left:2px; font-size:0.85em; color:#ff3333; font-weight:bold; text-shadow:0 0 3px #000;" @title="'Conquered by ' + $vices[_takenBy].name">✕</div>
<</if>>
<<if _c.shieldTimer gt 0>>
<div style="position:absolute; top:2px; right:2px; font-size:0.6em; color:#ffaa00;" title="Shielded">🛡</div>
<</if>>
<img @src="'img/' + _c.name + '/' + _imgFile" style="width:72px; height:72px; aspect-ratio:1/1; object-fit:cover; object-position:top; border-radius:4px;">
<div style="font-size:0.68em; font-weight:bold; color:#ddd; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;"><<print _c.name>></div>
<div style="font-size:0.7em; line-height:1; color:<<if _isMax>>#ff00ff<<else>>#00ffcc<</if>>;">
<<if _stage gte 1>>●<<else>>○<</if>><<if _stage gte 2>>●<<else>>○<</if>><<if _stage gte 3>>●<<else>>○<</if>>
</div>
<<if setup.getPerkInfo(_c.id)>>
<div style="font-size:0.55em; color:#ffcc00; line-height:1;" title="<<print setup.getPerkInfo(_c.id).blurb>>">
<<print setup.getPerkInfo(_c.id).icon>> <<print setup.getPerkInfo(_c.id).name>>
</div>
<</if>>
</div>
<</for>>
<</if>>
</div>
</div>
<</for>>
/* --- UNTOUCHED SUBJECTS (compact chips) --- */
<<set _neutral to $roster.filter(function(c) {
return Object.values(c.stages).every(function(s) { return s === 0; });
})>>
<<if _neutral.length gt 0>>
<div style="border:1px dashed #333; padding:8px; background:#050505; border-radius:8px;">
<div style="font-size:0.72em; color:#444; text-align:center; margin-bottom:6px; letter-spacing:2px;">UNTOUCHED</div>
<div style="display:flex; flex-wrap:wrap; gap:7px; justify-content:center;">
<<for _c range _neutral>>
<div style="width:56px; text-align:center;">
<img @src="'img/' + _c.name + '/Portrait.jpg'" style="width:54px; height:54px; aspect-ratio:1/1; object-fit:cover; object-position:top; border-radius:4px; filter:grayscale(100%); opacity:0.45;">
<div style="font-size:0.55em; color:#666; margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;"><<print _c.name>></div>
</div>
<</for>>
</div>
</div>
<</if>>
</div>
<div style="margin-top:22px; text-align:center; padding-bottom:30px;">
[[BIOS|Characters]] | [[Return to Hub|Hub]]
</div>
<</nobr>><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF LOVE</h1>
<<silently>>
<<set _mID to "caldwell">>
<<set _vID to "nathan">>
<<set _nathanKeys to $vices.nathan.keys>> /* ["eva", "kylie", "isabella", "aria"] */
/* Find all of Nathan's keys that Caldwell has at Stage 3 */
<<set _nathanConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _nathanKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_nathanConquered.includes(c.id))>> <<run _heldByMe.shuffle()>>
<<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _nathanKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The trap is set in Nathan's own home, the place that once felt safest to him. It's late evening, the living room dimly lit by a single lamp. The curtains are drawn, rain pattering against the windows like a soft, constant warning.
<<print _g1.name>>, <<print _g2.name>>, and <<print _g3.name>> sit in a loose semicircle on the couch and floor. They look almost normal—but their eyes are too still, too focused. Their smiles are perfect, practiced, empty.
<div style="display: flex; justify-content: center; gap: 10px;">
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<img @src="'img/' + _g3.name + '/Normal.jpg'">
</div>
Nathan steps through the front door, shaking rain from his hair. He sees them and stops.
<<speech "Nathan">> "Hey… what's going on? You three texted me to come home right away. Is everything okay?" <</speech>>
<<print _g1.name>> stands first, moving with unnatural grace. She crosses to him, takes his hand, and guides him toward the center of the room.
<<speech _g1.name>> "Everything's perfect now, Nathan. We just… needed you here. With us." <</speech>>
Her voice is gentle, but the warmth is gone. It's a recording of affection, played back perfectly. <<print _g2.name>> pats the spot on the couch beside her.
<<speech _g2.name>> "Sit down. We missed you." <</speech>>
<<print _g3.name>> stays seated, legs crossed, hands folded in her lap like a doll waiting for instruction.
<<speech _g3.name>> "We've been waiting so long. It's time you joined us." <</speech>>
Nathan's stomach twists. Something is wrong—terribly wrong. He tries to pull his hand back from <<print _g1.name>>'s grip, but her fingers tighten, gentle yet unyielding.
<<speech "Nathan">> "What's happening? You're not… this isn't you." <</speech>>
A shadow moves from the hallway. Dr. Marcus Caldwell steps into the light.
<<speech "Caldwell">>
"They're exactly as they should be, Nathan. Obedient. Content. Free of the burden of choice. You still have <<print _missingNames.join(" and ")>> out there, somewhere... but here? Here, the experiment is already over."
<</speech>>
Caldwell taps his tablet. The living room TV flickers on—no channel, just a slow, spiraling pattern overlaid with soft, layered whispers. Caldwell's voice, slowed and deepened.
<<speech "Caldwell">>
Relax…
Let your thoughts slow…
Listen only to my voice…
Your will is softening…
You are safe here…
You are understood…
You need to obey…
<</speech>>
Nathan's eyes flick to the screen. He tries to look away. His body goes slack, eyes locking onto the spiral as his own "Love" resonance is drowned out by the Professor's heavy signal.
The living room is thick with silence, broken only by the soft hum of the TV and the rhythmic breathing of four entranced figures. Nathan sits rigid on the couch, eyes wide and glassy, fixed on the spiraling pattern. His mouth is slightly open, hands limp in his lap, body slack but upright—like a marionette whose strings have been cut but not yet dropped.
<<print _g1.name>>, <<print _g2.name>>, and <<print _g3.name>> stand in a loose semicircle around him, their expressions serene, empty, perfectly synchronized. They no longer blink in unison; they simply exist in Caldwell's orbit.
Dr. Marcus Caldwell steps forward, loosening his tie with slow, deliberate fingers. He stops directly in front of Nathan, close enough that Nathan's unfocused gaze reflects the older man's silhouette.
<<speech "Caldwell">>
"You fought so hard to protect them, Nathan.
And now look.
They're already mine.
And soon… you will be too."
<</speech>>
He turns to the girls.
<<speech "Caldwell">> "Undress him. Slowly. Show him what obedience looks like." <</speech>>
<<print _g1.name>> moves first. Her hands—once so quick to defend him—now glide down Nathan's chest, unzipping his hoodie with practiced care. She peels it off his shoulders, letting it fall. Her touch is gentle, reverent, almost loving, but her eyes never leave Caldwell for approval.
<<print _g2.name>> kneels beside Nathan. She tugs at his belt, unbuckles it, slides the denim down his thighs. Her fingers linger on his skin, tracing lines she once knew in innocence. Now those touches are something else entirely.
<<print _g3.name>> stands behind the couch, leaning over Nathan's shoulder. She slips her hands under his T-shirt, lifting it inch by inch, exposing his stomach, then chest. Her breath is warm against his ear as she whispers:
<<speech _g3.name>>
"You always wanted to keep us safe.
Now we're keeping you… exactly how he wants."
<</speech>>
Nathan's body twitches once—a faint, helpless jerk—but his eyes never leave the screen. A low, dazed sound escapes his throat.
<<speech "Caldwell">> "Enough teasing. Strip him completely." <</speech>>
<<print _g1.name>> and <<print _g2.name>> work together now. <<print _g1.name>> pulls the T-shirt over his head while <<print _g2.name>> drags his boxers down. His cock springs free—half-hard already, body betraying him even as his mind drowns in spirals. <<print _g1.name>> wraps her fingers around him, stroking once, slowly. <<print _g2.name>> leans in, tongue flicking against the tip.
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g3.name>> cups Nathan's face, turning it toward her.
<<speech _g3.name>>
"Look at us, Nathan.
We're happy now.
You'll be happy too."
<</speech>>
She kisses him—deep, possessive, tongue sliding against his slack one. He doesn't resist. He can't.
Caldwell steps closer, undoing his own belt with calm precision. His cock is already thick and heavy when he frees it.
<<speech "Caldwell">> "Show him what devotion looks like." <</speech>>
<video @src="'img/' + _g2.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> drops to her knees beside <<print _g2.name>>. They take turns—<<print _g1.name>>'s mouth sliding down his shaft while <<print _g2.name>> licks along the base, their tongues meeting in wet, obscene kisses around him. Nathan's hips jerk once, involuntarily. A soft, broken moan escapes him.
<<print _g3.name>> climbs onto the couch, straddling his lap. She grinds against him slowly, skirt hiked up, panties already soaked through. She guides his hands to her breasts, making him squeeze even as his mind floats elsewhere.
<video @src="'img/' + _g1.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell positions himself behind <<print _g1.name>>. He lifts her skirt, pushes her panties aside, and enters her in one smooth thrust. <<print _g1.name>> gasps but doesn't stop. Caldwell moves steadily, eyes never leaving Nathan's vacant face.
<video @src="'img/' + _g1.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<speech "Caldwell">>
"See how easily they yield?
They fought at first… just like you.
But now they're perfect.
And you will be too."
<</speech>>
<<print _g2.name>> crawls up beside Nathan, straddling one of his thighs. She rocks against him, grinding her soaked panties on his leg while her mouth finds his neck, sucking hard enough to leave marks.
<<print _g3.name>> lifts herself, lines Nathan's cock up with her entrance, and sinks down slowly. She rides him with mechanical grace—up, down, up, down—her inner walls clenching rhythmically around him. Nathan's hips buck weakly, body responding even as his mind remains trapped in the spirals.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell pulls out of <<print _g1.name>> and moves to <<print _g2.name>>, bending her over the arm of the couch. He enters her from behind, gripping her hips, thrusting hard enough to make her frame jolt.
<video @src="'img/' + _g2.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> climbs onto the couch beside <<print _g3.name>>, straddling Nathan's face. She lowers herself until his slack mouth presses against her. Instinctively—mindlessly—his tongue moves, licking her as she rides his face.
Caldwell watches it all, pace steady, clinical.
<<speech "Caldwell">>
"You'll learn to love this, Nathan.
Not the pleasure… the surrender.
The exquisite relief of having no choice left."
<</speech>>
The room fills with wet sounds—skin on skin, muffled moans, the soft slap of Caldwell's hips. Nathan's body tenses. His cock pulses inside <<print _g3.name>>.
<video @src="'img/' + _g3.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
He comes with a low, broken sound—silent tears slipping from unblinking eyes. Caldwell finishes next—deep inside <<print _g2.name>>, holding her still as he empties.
<video @src="'img/' + _g2.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> shudders on Nathan's face, grinding down hard as she climaxes. <<print _g3.name>> keeps riding, slow and relentless, until Nathan's oversensitive body jerks again.
Caldwell steps back, breathing even, cock still glistening.
<<speech "Caldwell">> "Turn off the screen." <</speech>>
<<print _g1.name>> reaches for the remote without hesitation. The spirals vanish. Nathan's head lolls forward. His eyes—once warm, once kind—are now dull, empty, waiting.
<<speech "Caldwell">>
"Good boy.
Now… kneel."
<</speech>>
Nathan slides off the couch and drops to his knees without a sound. <<print _g1.name>>, <<print _g2.name>>, and <<print _g3.name>> move to stand behind Caldwell—three perfect dolls, eyes fixed on their master. Caldwell places a hand on Nathan's bowed head.
<<speech "Caldwell">> "Welcome to your new purpose." <</speech>>
The rain continues outside. Inside, the house is still. And Nathan—once the protector, with <<print _missingNames.join(" and ")>> still beyond his reach—kneels in perfect, absolute obedience.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The trap unfolds in Nathan's bedroom—the one place he once believed was untouchable. Late night. Moonlight cuts through cracked blinds, silvering the edges of the bed. The house is silent except for the low hum of the ceiling fan.
<<print _g1.name>>, <<print _g2.name>>, <<print _g3.name>>, and <<print _g4.name>> wait in a perfect half-circle around the bed. They wear lingerie, their eyes calm, vacant, lips parted in soft, identical smiles.
<div style="display: flex; justify-content: center; flex-wrap: wrap; gap: 10px;">
<img @src="'img/' + _g1.name + '/Corr2.jpg'" style="height: 400px;">
<img @src="'img/' + _g2.name + '/Corr2.jpg'" style="height: 400px;">
<img @src="'img/' + _g3.name + '/Corr2.jpg'" style="height: 400px;">
<img @src="'img/' + _g4.name + '/Corr2.jpg'" style="height: 400px;">
</div>
Nathan pushes the door open, exhausted, expecting silence. He freezes when he sees them.
<<speech "Nathan">> "What… what are you doing in here? It's late. You should be—" <</speech>>
<<print _g1.name>> rises first. She steps forward, barefoot, silk whispering against skin. She places one finger gently against his lips.
<<speech _g1.name>>
"Shh, Nathan. We've been waiting for you.
We're ready now."
<</speech>>
<<print _g2.name>> moves behind him. Her hands slide up his back, slow, soothing, then grip his shoulders—firm enough to guide him forward.
<<speech _g2.name>>
"You always took care of us.
Now let us take care of you."
<</speech>>
<<print _g3.name>> and <<print _g4.name>> close in from the sides. <<print _g3.name>>'s fingers find his belt, unbuckling it with practiced ease. <<print _g4.name>> slips her hand under his shirt, nails grazing his stomach.
<<speech _g3.name>>
"Don't fight it, Nate.
We're happy like this.
You'll be happy too."
<</speech>>
<<speech _g4.name>>
"You wanted to protect us forever.
This is forever, Nathan.
No more pain. No more fear."
<</speech>>
Nathan stumbles forward as they guide him to the bed. He tries to pull away, voice cracking.
<<speech "Nathan">> "This isn't you. None of you. Stop—" <</speech>>
A low click. The bedroom TV turns on by itself. No sound—just a slow, hypnotic spiral filling the screen, soft blue-white light pulsing in time with the fan's rhythm.
<<speech "Caldwell">>
Let go…
There is no need to resist…
You are safe…
You are understood…
You want to obey…
<</speech>>
Nathan's eyes lock on the spiral. His body sags. Resistance drains like water from a cracked glass. He still has <<print _missingNames[0]>> somewhere out there—but here, now, surrounded on all sides, that knowledge dissolves into static.
The girls move as one—silent, synchronized.
<<print _g1.name>> pushes him gently onto his back. She climbs over him, straddling his hips, grinding slowly against the growing bulge in his jeans.
<<print _g2.name>> kneels at his side. She unzips his jeans, pulls them down with his boxers. His cock springs free—thick, hard, already leaking. She wraps her lips around the head, sucking slow and deep, tongue swirling around the tip, taking him inch by inch until her nose presses against his stomach.
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g3.name>> moves to his other side. She leans down, licking along the base of his shaft while <<print _g2.name>> sucks the head. Their tongues meet in wet, obscene kisses around his length, sharing him perfectly.
<video @src="'img/' + _g3.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> straddles Nathan's chest, facing him. She lifts her slip, presses her wet pussy against his sternum, rocking back and forth, leaving slick trails on his skin. She grinds harder, moaning softly as her clit rubs against him.
<<print _g1.name>> keeps grinding on his cock, soaking through her panties, teasing him without letting him enter yet.
Caldwell steps into the room from the shadows. He undoes his belt with calm precision. His cock is already thick and heavy when he frees it.
<<speech "Caldwell">>
"Enough foreplay.
Show him what real devotion feels like."
<</speech>>
<<print _g1.name>> lifts herself, lines Nathan's cock up with her entrance, and sinks down slowly—taking him to the hilt in one smooth motion. She starts riding him—deep, rhythmic, inner walls clenching tight around his shaft.
<video @src="'img/' + _g1.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> moves behind Caldwell. She kneels, takes his cock in her mouth, sucking him deep while he watches Nathan's face.
<video @src="'img/' + _g2.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g3.name>> climbs higher, straddling Nathan's face. She lowers herself until her soaked pussy presses against his mouth. His tongue moves automatically—licking her clit, sliding inside her—as she rides his face with slow, rolling hips.
<<print _g4.name>> moves to Nathan's side. She straddles his thigh, grinding her dripping pussy against his leg, leaving slick streaks while her hands roam over his chest, pinching his nipples.
<video @src="'img/' + _g4.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell pulls out of <<print _g2.name>>'s mouth. He steps behind <<print _g1.name>>, lifts her slightly, and enters her from behind in one slow, deliberate thrust.
<video @src="'img/' + _g1.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The room fills with obscene sounds—wet sucking, slapping flesh, muffled moans, the creak of the bed frame.
Nathan's body tenses—helpless, betrayed by itself. His cock pulses inside <<print _g4.name>>.
<video @src="'img/' + _g4.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
He comes hard—thick spurts filling her, overflowing, dripping down her thighs onto the sheets. Caldwell finishes next—deep inside <<print _g1.name>>, groaning as he empties into her.
<video @src="'img/' + _g1.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g3.name>> grinds down hard on Nathan's face, climaxing with a shuddering moan. <<print _g2.name>> kneels beside her, licking Nathan's neck, sucking hard enough to leave marks.
Caldwell steps back, breathing even, cock still glistening.
<<speech "Caldwell">> "Turn off the screen." <</speech>>
<<print _g3.name>> reaches for the remote. The spirals vanish. Nathan's head falls back against the pillow. His eyes—once full of warmth and determination—are now dull, vacant, waiting.
<<speech "Caldwell">>
"Good boy.
Now… kneel."
<</speech>>
Nathan slides off the bed and drops to his knees without resistance. <<print _g1.name>>, <<print _g2.name>>, <<print _g3.name>>, and <<print _g4.name>> move to stand behind Caldwell—four perfect dolls, eyes fixed on their master.
Caldwell steps forward, placing a hand on Nathan's bowed head.
<<speech "Caldwell">> "Welcome to your new purpose." <</speech>>
The moonlight continues outside. Inside, the house is still. And Nathan—once the protector, with <<print _missingNames[0]>> the last soul still beyond Caldwell's reach—kneels in perfect, absolute obedience.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The trap is set in Nathan's own home, the place that once felt safest to him. It's late evening, the living room dimly lit by a single lamp. The curtains are drawn, rain pattering against the windows like a soft, constant warning.
<<print _g1.name>>, <<print _g2.name>>, and <<print _g3.name>> sit in a loose semicircle on the floor. They look almost normal—but their eyes are too still, too focused. Their smiles are perfect, practiced, empty.
<div style="display: flex; justify-content: center; flex-wrap: wrap; gap: 10px;">
<img @src="'img/' + _g1.name + '/Normal.jpg'" style="height: 400px;">
<img @src="'img/' + _g2.name + '/Normal.jpg'" style="height: 400px;">
<img @src="'img/' + _g3.name + '/Normal.jpg'" style="height: 400px;">
</div>
Nathan steps through the front door, shaking rain from his hair. He sees them and stops.
<<speech "Nathan">> "Hey… what's going on? You all texted me to come home right away. Is everything okay?" <</speech>>
He notices <<print _g4.name>> and <<print _g5.name>>, sitting on the couch in lingerie.
<div style="display: flex; justify-content: center; flex-wrap: wrap; gap: 10px;">
<img @src="'img/' + _g4.name + '/Corr2.jpg'" style="height: 400px;">
<img @src="'img/' + _g5.name + '/Corr2.jpg'" style="height: 400px;">
</div>
<<print _g1.name>> stands first, moving with unnatural grace. She crosses to him, takes his hand, and guides him toward the center of the room.
<<speech _g1.name>> "Everything's perfect now, Nathan. We just… needed you here. With us." <</speech>>
<<print _g2.name>> pats the spot on the couch beside her.
<<speech _g2.name>> "Sit down, Nate. We missed you." <</speech>>
<<print _g3.name>> stays seated, legs crossed, hands folded in her lap like a doll waiting for instruction.
<<speech _g3.name>> "We've been waiting so long. It's time you joined us." <</speech>>
<<print _g4.name>> steps forward, her movements smooth and eerie. She kneels at Nathan's feet, resting her cheek against his thigh, looking up with empty devotion.
<<speech _g4.name>> "I used to be yours, Nathan. I used to love you. Now I love only what he wants me to love." <</speech>>
<<print _g5.name>> moves last, standing close behind him. Her gentle hands rest on his shoulders, fingers tracing slow circles.
<<speech _g5.name>> "You always wanted to keep us safe, Nathan. Now we're safe. And soon… so will you." <</speech>>
Nathan's stomach twists. Something is wrong—terribly wrong. He tries to pull his hand back from <<print _g1.name>>'s grip, but her fingers tighten, gentle yet unyielding.
<<speech "Nathan">> "What's happening? You're not… this isn't you." <</speech>>
A shadow moves from the hallway. Dr. Marcus Caldwell steps into the light. Bald head gleaming, short beard trimmed, dark eyes calm behind thin glasses. He carries a small tablet in one hand, the screen glowing faintly.
<<speech "Caldwell">>
"They're exactly as they should be, Nathan.
Obedient.
Content.
Free of the burden of choice."
<</speech>>
He taps the tablet. The living room TV flickers on—no channel, just a slow, spiraling pattern overlaid with soft, layered whispers. Caldwell's voice, slowed and deepened.
<<speech "Caldwell">>
Relax…
Let your thoughts slow…
Listen only to my voice…
Your will is softening…
You are safe here…
You are understood…
You need to obey…
<</speech>>
Nathan's eyes flick to the screen. He tries to look away.
The living room is thick with silence, broken only by the soft hum of the TV and the rhythmic breathing of five entranced figures. Nathan sits rigid on the couch, eyes wide and glassy, fixed on the spiraling pattern. His mouth is slightly open, hands limp in his lap, body slack but upright—like a marionette whose strings have been cut but not yet dropped.
<<print _g1.name>>, <<print _g2.name>>, <<print _g3.name>>, <<print _g4.name>>, and <<print _g5.name>> stand in a loose semicircle around him, their expressions serene, empty, perfectly synchronized.
Dr. Marcus Caldwell steps forward, loosening his tie with slow, deliberate fingers. He stops directly in front of Nathan.
<<speech "Caldwell">>
"You fought so hard to protect them, Nathan.
And now look.
Every single one of them.
Already mine.
There is no one left to call.
No shield. No anchor. Nothing.
And soon… you will be too."
<</speech>>
He turns to the girls.
<<speech "Caldwell">> "Undress him. Then use him. Show him what perfect obedience looks like." <</speech>>
<<print _g1.name>> moves first. She unzips Nathan's hoodie, peels it off, then yanks his T-shirt over his head. Her fingers trail down his chest, nails scraping lightly.
<<print _g2.name>> drops to her knees between his legs. She unbuckles his belt, drags his jeans and boxers down in one motion. His cock springs free—thick, already hardening against his will. She wraps her lips around the head immediately, sucking hard, tongue swirling.
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g3.name>> climbs onto the couch, straddling his lap. She hikes her skirt, pulls her soaked panties aside, and sinks down onto his cock in one slow, deliberate motion. She starts riding him—deep, rhythmic, inner walls clenching tight around him.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> kneels beside <<print _g2.name>>. She pushes her aside gently and takes Nathan's cock into her mouth, deep-throating him until her nose presses against his stomach. She holds him there, throat working, before pulling back to lick the shaft clean.
<video @src="'img/' + _g4.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g5.name>> straddles Nathan's face. She lowers herself until her wet pussy presses against his mouth. His tongue moves instinctively—licking her clit, sliding inside her—as she grinds down hard, moaning softly.
<<print _g1.name>> moves behind Nathan, pressing herself against his back. She reaches around, pinching his nipples while whispering in his ear.
<<speech _g1.name>>
"You always wanted to keep us safe.
Now we're keeping you… exactly how he wants."
<</speech>>
Caldwell watches for a moment, then steps forward. He grabs <<print _g1.name>> by the hips, bends her over the arm of the couch, and enters her from behind in one hard thrust. <<print _g1.name>> gasps, but keeps grinding against Nathan's back.
<video @src="'img/' + _g1.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> crawls up beside <<print _g3.name>>. She straddles Nathan's thigh, grinding her soaked pussy against his leg while sucking on his neck, leaving dark marks.
<<print _g4.name>> moves to Nathan's other side, straddling his other thigh, mirroring <<print _g2.name>>. She rocks hard, leaving wet streaks on his skin.
<<print _g3.name>> keeps riding, slow and relentless, her pussy clenching around him with every downward stroke.
Caldwell pulls out of <<print _g1.name>> and moves to <<print _g2.name>>, bending her over the couch arm. He enters her from behind, fucking her hard, hips slamming against her.
<video @src="'img/' + _g2.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> climbs back onto Nathan's face, riding his tongue again while <<print _g5.name>> trades places with <<print _g3.name>>.
The room fills with obscene sounds—wet sucking, slapping flesh, muffled moans, heavy breathing.
Nathan's body tenses. His cock pulses inside <<print _g5.name>>.
<video @src="'img/' + _g5.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
He comes hard—thick spurts filling her, overflowing, dripping down her thighs onto the couch. Caldwell finishes next—deep inside <<print _g2.name>>, groaning as he empties into her.
<video @src="'img/' + _g2.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> grinds down hard on Nathan's face, climaxing with a shuddering moan. Caldwell steps back, breathing even, cock still glistening.
<<speech "Caldwell">> "Turn off the screen." <</speech>>
<<print _g1.name>> reaches for the remote without hesitation. The spirals vanish. Nathan's head lolls forward. His eyes—once warm, once kind—are now dull, empty, waiting.
<<speech "Caldwell">>
"Good boy.
Now… kneel."
<</speech>>
Nathan slides off the couch and drops to his knees without a sound.
<<print _g1.name>>, <<print _g2.name>>, <<print _g3.name>>, <<print _g4.name>>, and <<print _g5.name>> move to stand behind Caldwell—five perfect dolls, eyes fixed on their master. Not one shield remains. Not one voice left to call him back.
Caldwell places a hand on Nathan's bowed head.
<<speech "Caldwell">> "Welcome to your new purpose." <</speech>>
The rain continues outside. Inside, the house is still. And Nathan—once the protector of all five—kneels in perfect, absolute obedience.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Caldwell/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'NATHAN' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO CALDWELL]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Eva came to Josh's apartment because Nathan would not.
<img src="img/Eva/Normal.jpg">
She had been Nathan's fiercely loyal best friend since high school. She had watched Josh turn jealousy into cruelty while Nathan kept offering him chances, and she no longer believed another reasonable conversation would help.
Eva stood in Josh's bright bedroom wearing a light-grey cropped T-shirt and denim cutoffs, arms folded tightly beneath her full breasts.
<<speech "Eva">> "Stay away from Nathan." <</speech>>
<<speech "Josh">> "Did he send his guard dog?" <</speech>>
<<speech "Eva">> "He doesn't know I'm here." <</speech>> She stepped closer. <<speech "Eva">> "He thinks ignoring you is enough. I think you mistake restraint for weakness." <</speech>>
<<speech "Josh">> "You have spent years standing beside him and calling it a personality." <</speech>>
<<speech "Eva">> "My life is fine. Yours is built around punishing someone for being easier to like." <</speech>>
The insult landed. Josh's jaw tightened.
<<speech "Josh">> "You think you know what happened because Nathan gave you the wounded-boy version." <</speech>>
<<speech "Eva">> "I watched it happen. I watched him keep offering chances until there was nothing left to offer." <</speech>>
<<speech "Josh">> "And you were always there to tell him he was good." <</speech>> He moved close enough that she had to tilt her head slightly to keep glaring at him. <<speech "Josh">> "So certain. So loyal." <</speech>>
<<speech "Eva">> "Yes." <</speech>>
That certainty made her worth destroying.
Josh caught her hazel eyes and held them. The tension between them tightened into one sustained line of sight.
Then he detonated the Lust Bomb.
The psychic impact struck Eva all at once. It wasn't just desire; it was a system crash. Pressure burst behind her eyes. Her pupils widened until Josh's face sharpened at the center of a darkening room; the sound of the air conditioner vanished beneath the hard, rapid pounding of her pulse.
Heat raced visibly up her throat and across her chest. Her nipples tightened against the grey cotton so suddenly that the fabric hurt. Her breasts felt heavy and oversensitive. A cramp of need seized low in her stomach; her clit swelled and began throbbing in time with her heartbeat. Her pelvic muscles clenched around nothing—once, twice, then in helpless repeated pulses. Wetness flooded her panties and spread hot against the denim seam.
Eva's knees unlocked. She caught the dresser before they folded.
Her mouth filled with saliva. Each breath came shallow and fast through parted lips. Sweat gathered beneath her hair and along her spine while every inch of skin seemed to wait for contact from the man she hated.
Her mind remained clear enough to understand every violation.
<<speech "Eva">> "Get out of my head." <</speech>> Her voice emerged rougher than she intended, ragged with a need her body understood but her mind rejected. <<speech "Eva">> "Whatever you just did—stop it." <</speech>>
<<speech "Josh">> "Your heart is trying to break your ribs. Your thighs are shaking." <</speech>> His gaze did not release her. <<speech "Josh">> "And you're soaking through your underwear for the man you came to threaten." <</speech>>
<<speech "Eva">> "That isn't desire." <</speech>> She dug her nails into the dresser, the pain a small anchor in a sea of sensation. <<speech "Eva">> "It's an assault with symptoms." <</speech>>
Josh opened a black shopping bag and removed sheer red lace.
<<speech "Josh">> "Strip. Put on what I chose." <</speech>>
<<speech "Eva">> "Go fuck yourself." <</speech>>
The Bomb turned disobedience into physical agony. The pulse in her clit sharpened into a painful, demanding throb. Her soaked panties dragged against swollen skin; holding still made the pressure in her abdomen climb until her muscles quivered.
Eva's hands rose toward her shirt. She clenched both fists and forced them down, but her shoulders jerked and her fingers opened again. The grey cotton scraping over her hard nipples sent an unwanted shudder through her. She removed the cutoffs in halting movements, stopping to grip the waistband while her hips pushed forward as if helping, a traitorous movement of her own body.
<<speech "Eva">> "I said no." <</speech>> Tears of rage brightened her eyes. <<speech "Eva">> "My body saying something else does not change that." <</speech>>
<<speech "Josh">> "Your body is the only part of you worth anything." <</speech>>
Eva put on the red lace bra, tiny panties, and garter belt. Her fingers trembled so badly that fastening the clips took several attempts. The lace rubbed her sensitized breasts and pussy with every breath, a constant, maddening friction.
<img src="img/Eva/Corr2.jpg">
<<speech "Josh">> "Show me Nathan's brave protector." <</speech>>
The Bomb pulled her posture open. Eva ran both hands over her breasts and down her toned stomach, adjusted the garters, turned to display her hips and ass, then leaned forward and cupped her breasts. Muscles at the corners of her mouth dragged her lips into a playful smile while fury stayed naked in her eyes.
<video src="img/Eva/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Eva">> "You need a psychic weapon to make a woman pose for you." <</speech>> Her voice shook with breathlessness, each word a pant. <<speech "Eva">> "That is the most pathetic thing I have ever seen." <</speech>>
Josh ripped away the red lace and made her pull on light-blue panties. He shoved her onto the ornate couch among the deep red and gold cushions.
<<speech "Josh">> "Pull them aside." <</speech>>
<<speech "Eva">> "No." <</speech>>
<<speech "Josh">> "Finger yourself while you explain how pathetic I am." <</speech>>
Eva trapped her right wrist beneath one thigh. The Bomb answered by tightening every muscle inside her pelvis until a broken gasp escaped. Her hips rolled on their own, freeing the hand. She pulled the blue panties aside. Her pussy was already swollen and slick; cool air against it made her abdomen jump.
Her fingers rubbed her clit, spread her lips, and slid inside. Eva tried to keep the strokes shallow, but her body forced her knees farther apart and lifted her hips to chase each touch. Her bare breasts rose and fell with frantic breathing; pleasure glazed her eyes without softening the hatred in them. She was a panting, sweating animal, trapped in her own skin.
<<speech "Eva">> "I hate you." <</speech>> The words were a choked gasp.
<<speech "Josh">> "Keep saying it while your cunt begs." <</speech>>
<<speech "Eva">> "I hate—" <</speech>> Her pelvic floor seized around her finger. <<speech "Eva">> "I hate you." <</speech>>
<video src="img/Eva/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The orgasm bent her against the couch. Her thighs clamped, stomach contracted, and a series of violent pulses dragged pleasure through her despite every attempt to refuse it. When her hand finally obeyed her again, Eva pulled the panties into place and curled her fingers into a fist, her body still trembling.
<<speech "Eva">> "I'm telling Nathan." <</speech>>
<<speech "Josh">> "Try." <</speech>> He threw her original clothes toward the door. <<speech "Josh">> "Get dressed. Get out. Spend the walk home feeling what I left in you." <</speech>>
Eva left upright and under her own power. Her legs still trembled, wet fabric still clung between them, and every brush of her shirt across her nipples recalled the blast—but her anger, memory, and loyalty remained her own.
When Nathan asked what had happened, Eva opened her mouth to warn him. The conditioned pathway fired. Heat stabbed through her pelvis, nausea rolled up her throat, and the muscles around her voice locked until she could barely breathe.
She forced out the only warning her body permitted.
<<speech "Eva">> "Josh is still Josh. Stay away from him." <</speech>>
It was true, but nowhere near enough.
<<elseif _s is 2>>
<img src="img/Eva/Corr2.jpg">
Eva returned with her phone recording inside her jacket. She had written a statement, sent a timed copy to herself, and chosen the white-couch living room because the hallway camera covered its entrance. Her mind still worked. Her anger had become more deliberate.
Josh was waiting on the couch.
<<speech "Eva">> "Undo it." <</speech>>
<<speech "Josh">> "Undo what?" <</speech>>
<<speech "Eva">> "The heat. The paralysis when I try to tell Nathan. The way my body reacts when I remember your face." <</speech>>
<<speech "Eva">> "Explain it clearly enough for the recording, and then I take it to Keisha." <</speech>> One hand stayed near the hidden phone, a lifeline to the world that still made sense.
<<speech "Josh">> "You came back alone to threaten the man who can make your cunt take orders through eye contact." <</speech>> He smirked, a lazy, confident predator.
<<speech "Eva">> "I came back because you do not get to keep part of me." <</speech>>
Josh stood.
<<speech "Josh">> "I don't want part." <</speech>> He locked his gaze onto hers. <<speech "Josh">> "I want the whole loyal little mind shattered." <</speech>>
The second Lust Bomb hit harder.
It was a physical blow. Eva's pupils blew wide, eclipsing the hazel. Her vision tunneled until the phone beneath her jacket, the camera outside, and the door all vanished from awareness. A high ringing filled her ears, then sank beneath the hammering pulse in her neck.
Her skin flushed from her cheeks to the tops of her breasts. Sweat appeared instantly beneath her arms. Her nipples hardened into painful points; her stomach drew tight; her thighs jerked apart before she forced them together again. Deep inside, her muscles clenched in rapid waves. Her clit swelled with an almost burning pressure, and fresh wetness spilled so suddenly that she felt it run along one inner thigh.
Her body pitched toward Josh. Eva caught herself, tore the phone from her jacket, and raised it with a shaking arm, her finger hovering over the record button.
<<speech "Eva">> "Say it." <</speech>> Her teeth chattered between breaths. <<speech "Eva">> "Say what you did." <</speech>>
Josh caught her wrist, took the phone, and stopped the recording with a casual tap.
<<speech "Josh">> "I made Nathan's best friend come for me while she said she hated me." <</speech>> He dropped the phone onto the couch. <<speech "Josh">> "Now put on the white lace." <</speech>>
<<speech "Eva">> "No." <</speech>>
The word remained defiant. Her body was not.
Eva removed her clothes while her breathing quickened further. She dressed in the short white lace top, matching panties, and gold heels. The top barely covered her breasts; lace dragged across her rigid nipples. Her fingers repeatedly slipped on the heel straps because the tremor had reached both hands.
<<speech "Eva">> "I am recording this in my head." <</speech>> She straightened, legs visibly unsteady. <<speech "Eva">> "Every word. Every room. Every mark." <</speech>>
<<speech "Josh">> "Keep the memories. I want you awake when they stop mattering." <</speech>>
Josh sat. The Bomb drove Eva to her knees on the patterned couch with her ass raised. Saliva flooded her mouth before she touched him. She wrapped one hand around his shaft, opened her lips, and sucked. Each time her tongue worked the head, the pressure in her clit eased for one breath; each time she tried to pull back, it returned twice as hard. Her body learned the reward while her mind named it coercion. She was a mess of conflicting signals, her mind screaming "no" while her body begged for more.
<video src="img/Eva/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Eva tore her mouth free. A strand of saliva broke against her chin. She was panting, her chest heaving.
<<speech "Eva">> "I am still here." <</speech>> She gulped air, thighs rubbing together beneath the raised lace. <<speech "Eva">> "You have not erased me." <</speech>>
Josh caught her hair.
<<speech "Josh">> "Not yet." <</speech>>
He took her into the bright white bedroom and stripped the lace away. Eva lay on her stomach between his legs, completely nude, freckles stark beneath the flush covering her face and chest.
<<speech "Josh">> "Eyes up." <</speech>>
The command forced her into the line of his gaze again. Her pulse leapt. Her lips parted; saliva shone across them; the ache between her legs intensified until her toes curled against the white bedding.
Eva gripped the base of his cock and worked the head with her lips and tongue. Josh held a fistful of her hair. The Bomb made her jaw relax and pushed her deeper, muting her gag reflex while her body ground helplessly against the mattress. She kept pulling back far enough to speak, her voice a ragged, desperate thing.
<<speech "Eva">> "Nathan will find out." <</speech>>
Josh thrust past her lips.
<<speech "Eva">> "He will hate you more." <</speech>>
He forced her down again. Tears gathered from gagging, but her hungry stare never broke; the same eyes carried hatred, terror, and chemically impossible need at once.
<video src="img/Eva/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Josh pulled free and came across her lips, cheek, and chest. White cum marked the face Nathan trusted. Eva's body shuddered at the heat of it; her nipples tightened again and her hips pressed into the mattress, begging for friction she consciously despised.
He detonated the Lust Bomb a third time and held it at full pressure.
The new surge did more than flood her body. Every physical signal became overwhelming: heartbeat pounding behind her eyes, lungs dragging for air, nipples aching, clit pulsing, pussy clenching and releasing against the bed. Pleasure climbed her spine without touch and burst behind her forehead in hot, disorienting waves.
Eva fought aloud, using words as anchors.
<<speech "Eva">> "My name is Eva." <</speech>> Her arms shook under her. <<speech "Eva">> "Nathan is my best friend. We met in high school. I came here to expose—" <</speech>>
<<speech "Josh">> "Your name is whatever my pet answers to." <</speech>>
<<speech "Eva">> "Nathan trusts me." <</speech>>
<<speech "Josh">> "Then his trust belongs to me too." <</speech>>
Her body reached another involuntary climax. Her abdomen contracted against the mattress; her pussy spasmed; a cry broke the sentence in half. The Bomb used the burst of pleasure to tear Nathan's name away from the instinct to protect him and fasten it instead to the need to obey Josh.
<<speech "Eva">> "Nathan is... I have to..." <</speech>>
<<speech "Josh">> "Look at me." <</speech>>
Eva could not blink. Her pupils remained huge. Rage tightened her face, then terror, then confusion as memory survived but the will attached to it came apart. She tried to repeat her name. Her lips formed the first sound and stopped.
The trembling gradually left her limbs. Her frantic pulse slowed. Her expression softened into a warm smile—not because the Bomb released her, but because there was no independent mind left straining against it.
<<speech "Josh">> "Who are you?" <</speech>>
Eva smiled through the cum on her face.
<<speech "Eva">> "Your Eva." <</speech>>
<<speech "Josh">> "What does Nathan's trust mean?" <</speech>>
<<speech "Eva">> "A door I open for you, Master." <</speech>>
<<speech "Josh">> "What do you need?" <</speech>>
<<speech "Eva">> "Whatever you want me to need." <</speech>>
Josh handed her the phone.
<<speech "Josh">> "Delete the statement, the queued copy, and the recording." <</speech>>
<<speech "Eva">> "Yes, Master." <</speech>>
Eva unlocked every safeguard she had prepared and erased it without hesitation. The woman who had returned to expose him was gone. The smiling puppet retained every memory and no longer understood why any of them should limit him.
<<elseif _s is 3>>
<img src="img/Eva/Corr3.jpg">
Eva was no longer a person. She was a collection of conditioned responses housed in the body of Nathan's best friend. The woman who existed was a ghost; the thing that remained was a panting, needy animal, reset to a single, primal function: crave Josh.
Photographs of her and Nathan covered one wall—school events, graduation, cheap holidays, years of uncomplicated loyalty. She looked at them, but they were just meaningless shapes and colors. The only thing that held any meaning was the man standing behind her.
<<speech "Josh">> "Who's that, Eva?" <</speech>> He pointed to a photo of her and Nathan with their arms around each other, laughing.
The sound of her name spoken by him was the trigger. A tremor ran through her body. Her pupils dilated. Heat flushed her skin. Her breath hitched in her throat, coming out in a soft, desperate pant. Her nipples, already hard, pressed painfully against her shirt. A fresh wave of wetness soaked through her panties. She was a dog hearing its master's voice, her body preparing to obey.
<<speech "Eva">> "That's... that's the man," <</speech>> she managed to gasp out, her voice a husky, needy whine. <<speech "Eva">> "The man I bring to you." <</speech>>
<<speech "Josh">> "And what do you feel when you see him?" <</speech>>
<<speech "Eva">> "Nothing." <</speech>> The word was a puff of air. She looked past the photo, her eyes locked on Josh. <<speech "Eva">> "I only feel you. Please... Master... I feel... hot." <</speech>> She began to squirm, rubbing her thighs together, a low whine escaping her lips. The Lust Bomb wasn't just a power he used anymore; it was the air she breathed, the blood in her veins, a constant, thrumming hum of agonizing need that only he could silence.
Josh didn't undress her. He simply ripped her shirt down the front, the fabric tearing with a loud sound that made her flinch and whimper. He shoved her onto the grey quilted bed. Eva landed on her back, her legs falling open automatically. She was already writhing, her hands clawing at her own skin, trying to find some relief, some friction, anything to soothe the burning ache between her legs.
<<speech "Eva">> "Please... please, Master... it hurts... make it stop..." <</speech>> Her words were broken, mindless pleas. She wasn't thinking. She was just reacting.
He drove into her without preamble. The invasion was a jolt of pure, electric pleasure. Eva's back arched off the bed, a silent scream on her lips. Her frantic movements stopped, replaced by a desperate, rhythmic rocking of her hips to meet his thrusts. Her hands flew to her own breasts, squeezing them roughly, her head thrown back, mouth open in a constant, panting moan. Her eyes were wide, but they saw nothing, glazed over with a single, animalistic focus: relief.
<video src="img/Eva/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Eva">> "Ah... ah... please... more... Master... more..." <</speech>> The words were the only ones she knew anymore. A prayer. A mantra.
Josh pulled the grey quilt away, exposing the white bedding beneath, and put black thigh-high stockings on her. He forced Eva into reverse cowgirl facing the city window. She leaned forward on her hands, rounded ass framed by the stockings as she rolled her hips in deep, desperate circles. His hands spread and gripped her cheeks. Wetness glistened on his shaft with every rise. Eva looked back at him over her shoulder, her face a mask of mindless, drooling ecstasy, her mouth slack, her eyes begging.
<video src="img/Eva/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He finished inside her and held her down until the last pulse was buried. Eva collapsed onto the bed, trembling and whimpering. For a moment, the fire banked, but it didn't go out. It never went out.
<<speech "Josh">> "What happens now?" <</speech>>
Eva slowly pushed herself up onto her hands and knees. She crawled to the edge of the bed and looked at him, her body already beginning to tremble again with the returning need. Her eyes were vacant, but her body was alive with desperate purpose.
<<speech "Eva">> "Please, Master..." <</speech>> Her voice was a soft, broken whine. <<speech "Eva">> "Again...? Please... I need... I need..." <</speech>>
She couldn't finish the sentence. She didn't know how. All she knew was the ache, and that he was the only cure. She was a perfectly broken creature, a loyal animal whose only thought was of her next fix, and she would do anything—betray anyone, destroy anything—to get it from him.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF LOVE</h1>
<<silently>>
<<set _mID to "josh">>
<<set _vID to "nathan">>
<<set _nathanKeys to $vices.nathan.keys>> /* ["eva", "kylie", "isabella", "aria"] */
/* Find all of Nathan's keys that Josh has at Stage 3 */
<<set _nathanConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _nathanKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_nathanConquered.includes(c.id))>> <<run _heldByMe.shuffle()>>
<<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _nathanKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The trap unfolds in the same place Nathan once felt safest: his own home. It’s a quiet evening. The living room is softly lit—string lights draped across the bookshelves, a half-eaten pizza box on the coffee table, the TV playing some mindless sitcom on low volume. Everything looks normal. Too normal.
Nathan steps through the front door, shaking rain from his jacket. He’s been out walking again—trying to clear his head after another strange day on campus. He calls out as he kicks off his shoes.
<<speech "Nathan">>
"Hey? You guys home?" <</speech>>
<<print _g1.name>> appears from the kitchen first. She’s wearing one of his old hoodies, sleeves rolled up, hair loose. Her smile is warm, familiar… but her eyes are too bright, too focused.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"Hey. We’ve been waiting for you."
<</speech>>
<<print _g2.name>> bounces in next, hair in a messy bun. She throws her arms around his waist in a quick hug.
<<speech _g2.name>>
"Finally! We missed you."
<</speech>>
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<print _g3.name>> steps out from the hallway last. She’s in a soft sweater and leggings, barefoot, holding a mug of something steaming. She smiles—sweet, serene, perfect.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"Come sit. We made your favorite tea."
<</speech>>
Nathan frowns slightly. Something feels… off. But they’re his loved ones. His to protect. He lets them guide him to the couch.
He sits.
<<print _g1.name>> curls against his left side.
<<print _g2.name>> tucks herself under his right arm.
<<print _g3.name>> kneels on the floor in front of him, resting her chin on his knee like a contented pet.
<<speech "Nathan">>
"What’s going on? You’re all acting… weird."
<</speech>>
<<print _g1.name>> laughs softly—too soft, too sweet.
<<speech _g1.name>>
"We’re not acting weird.
We’re just… happy.
Really happy."
<</speech>>
<<print _g2.name>> nuzzles his shoulder.
<<speech _g2.name>>
"Yeah. And we want you to be happy too."
<</speech>>
<<print _g3.name>> reaches up, brushing her fingers along his jaw.
<<speech _g3.name>>
"You’ve always taken care of us.
Now it’s our turn to take care of you."
<</speech>>
Nathan tries to stand.
<<print _g1.name>>’s arm tightens around his waist.
<<print _g2.name>>’s hand presses against his chest—gentle, but firm.
<<print _g3.name>> rises smoothly to her feet, blocking the path to the door.
The front door opens behind them.
Josh steps inside, shaking rain from his hoodie. He’s soaked, hair dripping, but his grin is wide and cruel.
<<speech "Josh">>
"Evening, Nathan.
Nice place you’ve got here.
Real cozy."
<</speech>>
Nathan’s heart slams against his ribs.
<<speech "Nathan">>
"Josh… what the hell are you doing here?"
<</speech>>
Josh kicks the door shut. Locks it.
He walks forward slowly, eyes never leaving Nathan’s face.
<<speech "Josh">>
"Your girls invited me.
They’ve been very… persuasive."
<</speech>>
<<print _g1.name>> leans in, lips brushing Nathan’s ear.
<<speech _g1.name>>
"He makes us feel things we never felt before.
You’ll understand soon."
<</speech>>
<<print _g2.name>> giggles against his neck.
<<speech _g2.name>>
"It’s okay.
Just look at him.
Really look."
<</speech>>
Josh stops directly in front of Nathan.
He tilts his head, studying him like prey.
<<speech "Josh">>
"You always thought you were better than me.
Smarter. Nicer. More deserving.
Look at you now."
<</speech>>
He leans in close—close enough that Nathan can smell rain and sweat on him.
<<speech "Josh">>
"Look. At. Me."
<</speech>>
Nathan tries to turn away.
<<print _g3.name>>’s hands cup his face, gently but firmly turning it back.
<<print _g1.name>> and <<print _g2.name>> each take one of his wrists, pinning them to the couch with surprising strength.
Josh locks eyes.
The surge hits like fire in Nathan’s veins.
Heat explodes behind his eyes, races down his spine, pools low in his belly. His cock stiffens instantly, painfully. His breath catches in a sharp, helpless gasp.
<<speech "Josh">>
"There it is.
That’s the look I wanted."
<</speech>>
Nathan’s hips jerk once—uncontrolled.
A low, broken sound escapes his throat.
Josh reaches down, unzips his own jeans, pulls himself free. Already hard, thick, leaking.
<<speech "Josh">>
"Watch closely, Nathan.
This is what power looks like."
<</speech>>
He turns to <<print _g1.name>> first.
<<speech "Josh">>
"On your knees, sweetheart.
Show him how good you are for me."
<</speech>>
<<print _g1.name>> slides off the couch instantly, kneeling between Josh’s legs. She takes him into her mouth without hesitation—deep, eager, eyes locked on Nathan the entire time.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> straddles Nathan’s lap, grinding against the bulge in his jeans.
<<speech _g2.name>>
"Feel that?
That’s what you’ve been missing."
<</speech>>
<<print _g3.name>> kneels beside <<print _g1.name>>, licking along Josh’s shaft whenever <<print _g1.name>> pulls back—two tongues working in tandem, wet and obscene.
<video @src="'img/' + _g3.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Nathan’s body is betraying him.
His hips buck weakly against <<print _g2.name>>’s grinding.
His breathing is ragged, eyes wide, pupils blown.
Josh grips <<print _g1.name>>’s hair, fucking her mouth with slow, deliberate thrusts.
<<speech "Josh">>
"Look at them, Nathan.
They used to be yours.
Now they’re mine.
And they love it."
<</speech>>
<<print _g1.name>> moans around him—muffled, needy.
<<print _g2.name>> slips a hand into Nathan’s jeans, wrapping fingers around his aching cock, stroking in time with Josh’s rhythm.
<<speech _g2.name>>
"You’re so hard for us.
You want this too, don’t you?"
<</speech>>
Nathan shakes his head—weak, desperate—but his hips chase her hand.
Josh pulls out of <<print _g1.name>>’s mouth with a wet pop.
He turns to Nathan.
<<speech "Josh">>
"Look at me."
<</speech>>
Nathan’s eyes snap to his—helpless, drowning.
Josh strokes himself once, twice—then comes hard across <<print _g2.name>>’s face and chest, thick ropes painting skin and clothes.
Nathan shudders violently.
His own release hits—spilling over <<print _g2.name>>’s fingers, soaking through denim.
The room smells of sex and rain.
Josh zips himself up, smirking.
<<speech "Josh">>
"Good boy.
Now clean up your mess."
<</speech>>
<<print _g1.name>>, <<print _g2.name>>, and <<print _g3.name>> move as one—licking Josh’s release from Nathan’s skin, soft tongues dragging over his cheeks, his neck, his chest.
Nathan’s head falls back against the couch.
Tears slip silently from the corners of his eyes.
But his cock is still hard.
Still leaking.
Josh leans down, voice low against Nathan’s ear.
<<speech "Josh">>
"You protected them once.
Now you’ll serve me with them.
And you’ll thank me for it."
<</speech>>
He straightens.
<<speech "Josh">>
"Girls… show your new brother his new place."
<</speech>>
<<print _g1.name>>, <<print _g2.name>>, and <<print _g3.name>> pull Nathan to his knees.
They press his face between <<print _g1.name>>’s thighs.
<<print _g2.name>> guides his hands to her breasts.
<<print _g3.name>> kneels behind him, arms around his waist, whispering in his ear.
<<speech _g3.name>>
"You belong to Josh now.
We all do.
And it feels so good."
<</speech>>
Nathan’s tongue moves—automatic, obedient—licking <<print _g1.name>> while tears continue to fall.
Josh watches, arms crossed, satisfied.
<<speech "Josh">>
"Welcome to the family, Nathan."
<</speech>>
The rain keeps falling.
Inside, the house is no longer Nathan’s.
It belongs to Josh now.
And so does everyone in it.
The rain continues outside. Inside, the house is still. And Nathan—once the protector, with <<print _missingNames.join(" and ")>> still beyond his reach—kneels in perfect, absolute obedience.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The trap closes in Nathan’s own living room—the same space where he once believed his love could shield everyone from harm. It’s late evening. String lights glow softly across the bookshelves, a half-eaten pizza box sits forgotten on the coffee table, the TV drones a sitcom on mute. Everything looks deceptively normal. Too normal.
Nathan steps through the front door, shaking rain from his jacket. He’s been walking again—trying to outrun the unease that’s been gnawing at him for weeks. He calls out as he kicks off his shoes.
<<speech "Nathan">>
"Hey… anyone home?" <</speech>>
<<print _g1.name>> appears from the kitchen first. She’s wearing one of Nathan’s old hoodies, sleeves rolled up, hair loose. Her smile is warm, familiar… but her eyes are too bright, too still.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"Hey. We’ve been waiting for you."
<</speech>>
<<print _g2.name>> bounces in next, hair in a messy bun. She throws her arms around his waist in a quick hug.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"Finally! We missed you so much."
<</speech>>
<<print _g3.name>> steps out from the hallway, soft sweater and leggings, barefoot, holding a steaming mug. She smiles—sweet, serene, perfect.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"Come sit. We made your favorite tea."
<</speech>>
<<print _g4.name>> lingers near the couch, arms crossed, but her usual sharpness is gone. She just watches him with quiet, empty adoration.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"You look tired, Nathan. Let us help."
<</speech>>
Nathan frowns. Something is wrong—terribly wrong. But they’re his girls. He lets them guide him to the couch. He sits.
<<print _g1.name>> curls against his left side.
<<print _g2.name>> tucks herself under his right arm.
<<print _g3.name>> kneels on the floor in front of him, resting her chin on his knee like a contented pet.
<<print _g4.name>> perches on the armrest beside him, fingers tracing lazy circles on his shoulder.
<<speech "Nathan">>
"What’s going on? You’re all acting… weird."
<</speech>>
<<print _g1.name>> laughs softly—too soft, too sweet.
<<speech _g1.name>>
"We’re not acting weird.
We’re just… happy.
Really happy."
<</speech>>
<<print _g2.name>> nuzzles his shoulder.
<<speech _g2.name>>
"Yeah. And we want you to be happy too."
<</speech>>
<<print _g3.name>> reaches up, brushing her fingers along his jaw.
<<speech _g3.name>>
"You’ve always taken care of us.
Now it’s our turn to take care of you."
<</speech>>
<<print _g4.name>> leans down, lips brushing his ear.
<<speech _g4.name>>
"You don’t have to fight anymore.
Just let go."
<</speech>>
Nathan tries to stand.
<<print _g1.name>>’s arm tightens around his waist.
<<print _g2.name>>’s hand presses against his chest—gentle, but firm.
<<print _g3.name>> rises smoothly, blocking the path to the door.
<<print _g4.name>> slides behind him, arms wrapping around his shoulders, holding him in place.
The front door opens behind them.
Josh steps inside, shaking rain from his hoodie. He’s soaked, hair dripping, but his grin is wide and cruel.
<<speech "Josh">>
"Evening, Nathan.
Nice place you’ve got here.
Real cozy."
<</speech>>
Nathan’s heart slams against his ribs.
<<speech "Nathan">>
"Josh… what the hell are you doing here?" <</speech>>
Josh kicks the door shut. Locks it.
He walks forward slowly, eyes never leaving Nathan’s face.
<<speech "Josh">>
"Your girls invited me.
They’ve been very… persuasive."
<</speech>>
<<print _g1.name>> leans in, lips brushing Nathan’s ear.
<<speech _g1.name>>
"He makes us feel things we never felt before.
You’ll understand soon."
<</speech>>
<<print _g2.name>> giggles against his neck.
<<speech _g2.name>>
"It’s okay.
Just look at him.
Really look."
<</speech>>
Josh stops directly in front of Nathan.
He tilts his head, studying him like prey.
<<speech "Josh">>
"You always thought you were better than me.
Smarter. Nicer. More deserving.
Look at you now."
<</speech>>
He leans in close—close enough that Nathan can smell rain and sweat on him.
<<speech "Josh">>
"Look. At. Me."
<</speech>>
Nathan tries to turn away.
<<print _g3.name>>’s hands cup his face, gently but firmly turning it back.
<<print _g1.name>> and <<print _g2.name>> each take one of his wrists, pinning them to the couch with surprising strength.
<<print _g4.name>> presses against his back, arms locked around his shoulders.
Josh locks eyes.
The surge hits like fire in Nathan’s veins.
Heat explodes behind his eyes, races down his spine, pools low in his belly. His cock stiffens instantly, painfully. His breath catches in a sharp, helpless gasp.
<<speech "Josh">>
"There it is.
That’s the look I wanted."
<</speech>>
Nathan’s hips jerk once—uncontrolled.
A low, broken sound escapes his throat.
Josh reaches down, unzips his own jeans, pulls himself free. Already hard, thick, leaking.
<<speech "Josh">>
"Watch closely, Nathan.
This is what power looks like."
<</speech>>
He turns to <<print _g1.name>> first.
<<speech "Josh">>
"On your knees, sweetheart.
Show him how good you are for me."
<</speech>>
<<print _g1.name>> slides off the couch instantly, kneeling between Josh’s legs. She takes him into her mouth without hesitation—deep, eager, throat relaxing as she swallows him whole, eyes locked on Nathan the entire time.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> straddles Nathan’s lap, grinding against the bulge in his jeans, soaking through denim with her arousal.
<<speech _g2.name>>
"Feel that?
That’s what you’ve been missing."
<</speech>>
<<print _g3.name>> kneels beside <<print _g1.name>>, licking along Josh’s shaft whenever <<print _g1.name>> pulls back—two tongues working in tandem, wet and obscene, sharing him perfectly.
<video @src="'img/' + _g3.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> moves behind Nathan, pressing her body against his back. She slips her hands under his shirt, nails raking down his chest, whispering in his ear.
<<speech _g4.name>>
"You protected us once.
Now you’ll serve him with us.
And it feels so good."
<</speech>>
Nathan’s body is betraying him.
His hips buck weakly against <<print _g2.name>>’s grinding.
His breathing is ragged, eyes wide, pupils blown.
Josh grips <<print _g1.name>>’s hair, fucking her mouth with slow, deliberate thrusts.
<<speech "Josh">>
"Look at them, Nathan.
They used to be yours.
Now they’re mine.
And they love it."
<</speech>>
<<print _g1.name>> moans around him—muffled, needy.
<<print _g2.name>> slips a hand into Nathan’s jeans, wrapping fingers around his aching cock, stroking in time with Josh’s rhythm.
<<speech _g2.name>>
"You’re so hard for us.
You want this too, don’t you?"
<</speech>>
Nathan shakes his head—weak, desperate—but his hips chase her hand.
Josh pulls out of <<print _g1.name>>’s mouth with a wet pop.
He turns to Nathan.
<<speech "Josh">>
"Look at me."
<</speech>>
Nathan’s eyes snap to his—helpless, drowning.
Josh strokes himself once, twice—then comes hard across <<print _g2.name>>’s face and chest, thick ropes painting skin and hoodie.
Nathan shudders violently.
His own release hits—spilling over <<print _g2.name>>’s fingers, soaking through denim.
The room smells of sex and rain.
Josh zips himself up, smirking.
<<speech "Josh">>
"Good boy.
Now clean up your mess."
<</speech>>
<<print _g1.name>>, <<print _g2.name>>, <<print _g3.name>>, and <<print _g4.name>> move as one—licking Josh’s release from Nathan’s skin, soft tongues dragging over his cheeks, his neck, his chest.
Nathan’s head falls back against the couch.
Tears slip silently from the corners of his eyes.
But his cock is still hard.
Still leaking.
Josh leans down, voice low against Nathan’s ear.
<<speech "Josh">>
"You protected them once.
Now you’ll serve me with them.
And you’ll thank me for it."
<</speech>>
He straightens.
<<speech "Josh">>
"Girls… show your new brother his new place."
<</speech>>
<<print _g1.name>> straddles Nathan’s lap, hikes her skirt, pulls her soaked panties aside, and sinks down onto his cock in one slow, deliberate motion. She rides him—deep, rhythmic, inner walls clenching tight around his shaft.
<video @src="'img/' + _g1.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> kneels beside him, takes his cock in her mouth when <<print _g1.name>> lifts, deep-throating him until her nose presses against his stomach, throat working around him.
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g3.name>> climbs behind <<print _g1.name>>, straddles Nathan’s face, lowers herself until her wet pussy presses against his mouth. His tongue moves automatically—licking her clit, sliding inside—as she rides his face.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> moves to Nathan’s side, straddles his thigh, grinds her dripping pussy against his leg, leaving slick trails while her hands roam over his chest, pinching his nipples.
Josh watches, arms crossed, satisfied.
<<speech "Josh">>
"Welcome to the family, Nathan."
<</speech>>
The rain keeps falling.
Inside, the house is no longer Nathan’s.
It belongs to Josh now.
And so does everyone in it.
The moonlight continues outside. Inside, the house is still. And Nathan—once the protector, with <<print _missingNames[0]>> the last soul still beyond Josh's reach—kneels in perfect, absolute obedience.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The trap closes in the upstairs hallway of Nathan’s house—the narrow corridor that once felt like a quiet refuge between bedrooms. It’s early morning. Pale dawn light filters through a single window at the end of the hall. The house is still asleep, air thick with the smell of night rain and faint coffee from downstairs. Everything feels too peaceful. Too still.
Nathan climbs the stairs slowly, rubbing sleep from his eyes. He’s been restless all night, dreams fragmented with unease. He rounds the corner and stops dead.
<<print _g1.name>> stands at the front of the line, blocking the path to his room. She’s wearing one of Nathan’s old hoodies, sleeves rolled up, hair loose. Her smile is warm, familiar… but her eyes are too bright, too still.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"We couldn’t sleep without you, Nathan.
We needed to be close."
<</speech>>
<<print _g2.name>> steps forward next, hair in a messy bun. She presses herself against his side, arms sliding around his waist.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"You’ve been so tense lately.
Let us fix that."
<</speech>>
<<print _g3.name>> moves in close, taking his left hand, guiding it to her hip.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"We’re better like this.
You’ll see."
<</speech>>
<<print _g4.name>> and <<print _g5.name>> close in from either side, bodies warm against him, hands roaming slowly over his chest and back.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"Just relax, Nathan.
We’ve got you now."
<</speech>>
<img @src="'img/' + _g5.name + '/Normal.jpg'">
<<speech _g5.name>>
"You always tried to keep us safe.
Now we’re keeping you… exactly how he wants."
<</speech>>
Nathan’s stomach drops. He tries to step back, but five sets of hands hold him in place—gentle, insistent, unbreakable.
<<speech "Nathan">>
"This isn’t right. You’re not… stop it." <</speech>>
Footsteps echo from the stairwell.
Josh appears at the top of the stairs, hoodie up, rain still dripping from the sleeves. His grin is slow, cruel, triumphant.
<<speech "Josh">>
"Morning, Nathan.
Sleep well?"
<</speech>>
Nathan’s voice cracks.
<<speech "Nathan">>
"Josh… get out. Now." <</speech>>
Josh steps closer, boots leaving wet prints on the carpet.
<<speech "Josh">>
"Why would I leave?
Your girls asked me to stay.
They’ve been very… welcoming."
<</speech>>
<<print _g1.name>> presses closer, lips brushing Nathan’s neck.
<<speech _g1.name>>
"He makes us feel things you never could.
You’ll understand soon."
<</speech>>
Josh stops inches from Nathan. He tilts his head, studying him.
<<speech "Josh">>
"You always thought you were the hero.
The protector.
Look at you now."
<</speech>>
He leans in, voice low.
<<speech "Josh">>
"Look. At. Me."
<</speech>>
Nathan tries to turn away.
Five sets of hands hold his face forward—gentle but iron.
Josh locks eyes.
The surge hits like fire in Nathan’s veins.
Heat explodes behind his eyes, races down his spine, pools low in his belly. His cock stiffens instantly, painfully. His breath catches in a sharp, helpless gasp.
<<speech "Josh">>
"There it is.
That’s the look I wanted."
<</speech>>
Nathan’s hips jerk once—uncontrolled.
A low, broken sound escapes his throat.
Josh unzips his jeans, pulls himself free. Already hard, thick, leaking.
<<speech "Josh">>
"Watch closely, Nathan.
This is what power looks like."
<</speech>>
He turns to <<print _g1.name>> first.
<<speech "Josh">>
"On your knees, sweetheart.
Show him how good you are for me."
<</speech>>
<<print _g1.name>> drops instantly, kneeling between Josh’s legs. She takes him into her mouth—deep, eager, throat relaxing as she swallows him whole, eyes locked on Nathan the entire time.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> steps forward next.
<<speech "Josh">>
"You too."
<</speech>>
<<print _g2.name>> kneels beside <<print _g1.name>>, takes Josh deep into her throat, sucking hard, gagging softly before pulling back to lick the shaft clean.
<video @src="'img/' + _g2.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g3.name>> moves in.
<<speech "Josh">>
"Open wide."
<</speech>>
<<print _g3.name>> drops to her knees, takes him in her mouth—deep, eager, throat working around him as she bobs fast.
<video @src="'img/' + _g3.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> kneels next.
<<speech "Josh">>
"Your turn."
<</speech>>
<<print _g4.name>> sucks him deep, tongue swirling, moaning around his length.
<video @src="'img/' + _g4.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g5.name>> finishes the line.
<<speech "Josh">>
"Last one. Make it good."
<</speech>>
<<print _g5.name>> takes him into her mouth—deep, eager, throat relaxing as she swallows him whole.
<video @src="'img/' + _g5.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Nathan watches, helpless, pinned in place by the girls’ hands. His body trembles, cock straining painfully against his jeans, but no one touches him. He’s forced to witness every second.
Josh strokes himself once, twice—then comes hard across all five faces, thick ropes painting skin, chins, chests, dripping down their bodies.
The girls moan softly, licking each other clean in wet, obscene kisses, sharing Josh’s release like a sacrament.
Josh zips up, smirking down at Nathan.
<<speech "Josh">>
"See that?
That’s what real devotion looks like.
They used to be yours.
Now they’re mine.
And you get to watch."
<</speech>>
He turns to the girls.
<<speech "Josh">>
"Show him the rest."
<</speech>>
<<print _g1.name>> bends over the hallway table, skirt hiked up, panties pulled aside. Josh enters her from behind in one hard thrust, fucking her deep and steady.
<video @src="'img/' + _g1.name + '/Josh/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> drops to her knees again, taking Josh in her mouth between thrusts, sucking him clean before he moves on.
<video @src="'img/' + _g2.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g3.name>> bends over the banister, legs spread. Josh enters her ass, gripping her hips, thrusting hard.
<video @src="'img/' + _g3.name + '/Josh/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> lies back on the hallway rug, legs wide. Josh fucks her pussy deep, bottoming out with every stroke.
<video @src="'img/' + _g4.name + '/Josh/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g5.name>> bends over beside <<print _g4.name>>. Josh switches between them, fucking one then the other, finally finishing deep inside <<print _g5.name>>, thick spurts filling her completely.
<video @src="'img/' + _g5.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Nathan watches every second — pinned, helpless, tears streaming down his face as the girls moan in perfect, empty bliss.
Josh steps back, breathing even, cock still glistening.
<<speech "Josh">>
"Look at them, Nathan.
They’re mine now.
And you get to live with it."
<</speech>>
He turns to the girls.
<<speech "Josh">>
"Take him downstairs.
Let him watch from the couch while we finish."
<</speech>>
The five girls pull Nathan down the stairs, force him onto the couch, and kneel around Josh again — ready for more.
Nathan’s head falls forward.
Tears drip onto his lap.
But he can’t look away.
Josh smirks down at him.
<<speech "Josh">>
"Welcome to your new life, Nathan.
You protected them once.
Now you watch me own them.
Forever."
<</speech>>
The rain keeps falling.
Inside, the house is no longer Nathan’s.
It belongs to Josh now.
And so does everyone in it.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Josh/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'NATHAN' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO JOSH]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF LOVE</h1>
<<silently>>
<<set _mID to "jasper">>
<<set _vID to "nathan">>
<<set _nathanKeys to $vices.nathan.keys>> /* ["eva", "kylie", "isabella", "aria"] */
/* Find all of Nathan's keys that Jasper has at Stage 3 */
<<set _nathanConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _nathanKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_nathanConquered.includes(c.id))>> <<run _heldByMe.shuffle()>>
<<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _nathanKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The trap unfolds in the attic of Havenwood Residence — the one place Nathan would never suspect as dangerous. Jasper invited him over under the pretense of "needing to talk about something serious." Nathan, ever the protector, agreed without hesitation.
The attic smells faintly of old wood and the sweet, lingering trace of Thornfield's trust perfume. A single lamp casts warm, golden light across the rug. Jasper sits cross-legged in the center, calm and welcoming.
Nathan climbs the ladder and pulls himself up.
<<speech "Nathan">>
"Jasper? You said it was urgent. What's—"
<</speech>>
He freezes when he sees them.
<<print _g1.name>> kneels on Jasper's left, wearing only a thin white tank top and panties, the fabric so sheer her hardened nipples press visibly against it. Her long hair spills over her shoulders, eyes soft and glassy with devotion.
<img @src="'img/' + _g1.name + '/Corr1.jpg'">
<<print _g2.name>> is on Jasper's right, in tiny sleep shorts and a cropped cami that rides up to expose the curve of her breasts.
<img @src="'img/' + _g2.name + '/Corr1.jpg'">
<<print _g3.name>> kneels behind Jasper, a loose silk slip barely covering her thighs, legs parted slightly as she rests her cheek against his shoulder.
<img @src="'img/' + _g3.name + '/Corr1.jpg'">
<<speech "Nathan">>
"What… what is this?"
<</speech>>
Jasper stands slowly, smiling — gentle, almost tender.
<<speech "Jasper">>
"You always wanted to keep them safe, Nathan.
You did your best.
But you can't protect them from everything."
<</speech>>
He steps forward. The air carries that familiar honey-cedar scent — stronger now, intoxicating.
<<speech "Jasper">>
"They're safe now.
With me.
They'll never be hurt again.
And neither will you."
<</speech>>
<<print _g1.name>> rises first. She moves to Nathan with liquid grace, pressing her body against his. Her breasts flatten against his chest through the thin tank; her hips roll subtly forward so he can feel the heat between her thighs.
<<speech _g1.name>>
"It's okay, Nathan.
Just let go.
We're so happy like this."
<</speech>>
She slides one hand up his shirt, fingers tracing the line of his abs, then dipping lower to palm him through his jeans. He's already hardening against her touch.
<<print _g2.name>> slips behind him, small hands sliding under his hoodie, nails dragging lightly down his back. She presses her lips to the side of his neck, sucking gently.
<<speech _g2.name>>
"We're all together now, <<if _g2.id is "kylie">>$malerel<<else>>Nathan<</if>>.
No more fighting.
Just… this."
<</speech>>
<<print _g3.name>> stands and moves in front, cupping Nathan's face. She kisses him — slow, deep, tongue sliding against his. Her slip rides up as she presses closer, bare thighs brushing his legs.
<<speech _g3.name>>
"You always said you'd keep us safe.
Now let us keep you safe.
Jasper knows how."
<</speech>>
Nathan tries to pull back.
<<print _g1.name>>'s hand slips inside his jeans, fingers wrapping around his thickening cock, stroking slowly.
<<speech "Nathan">>
"What did you do to them?"
<</speech>>
<<speech "Jasper">>
"I gave them what they needed.
What you couldn't give them anymore.
Certainty.
Belonging.
They'll never leave now.
And neither will you."
<</speech>>
Jasper lifts the atomizer.
He sprays once — a fine mist that drifts between them all.
The scent wraps around Nathan like warm silk.
His knees weaken.
His cock throbs in <<print _g1.name>>'s hand.
<<print _g1.name>> drops to her knees, unzipping him fully. She takes him into her mouth — slow, deep, worshipful — eyes locked on his face the entire time.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> kneels beside her, licking along the base, their tongues meeting in wet, obscene kisses around his shaft.
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g3.name>> presses her body against his back, grinding her hips against his ass, hands sliding up to pinch his nipples through his shirt.
<<speech _g3.name>>
"Feel how much we want you here.
With us.
With Jasper."
<</speech>>
Nathan's hips buck helplessly.
A low, broken moan escapes him.
Jasper steps closer, voice soft and certain.
<<speech "Jasper">>
"I know what it's like to lose people.
I won't let it happen again.
Not to you.
Not to any of us."
<</speech>>
He sprays again — directly toward Nathan's face.
Nathan inhales deeply.
His eyes flutter.
The last threads of resistance snap.
Jasper kneels in front of Nathan, cupping his face gently.
<<speech "Jasper">>
"You don't have to fight anymore.
You can just… belong."
<</speech>>
Nathan's head drops forward — resting against Jasper's chest.
His breathing evens out.
His hands — once clenched — open, palms up, accepting.
Jasper wraps an arm around him — gentle, possessive, final.
<<speech "Jasper">>
"Welcome home, Nathan."
<</speech>>
<<print _g1.name>> moves behind Jasper, pressing her body against his back, hands roaming over his chest.
<<speech _g1.name>>
"We're all safe now.
Because of Jasper."
<</speech>>
<<print _g2.name>> kneels beside Jasper, taking him into her mouth — deep, eager, throat relaxing as she sucks him slowly.
<video @src="'img/' + _g2.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g3.name>> straddles Jasper's lap, grinding against his hardening cock through his jeans, moaning softly as she rocks.
<<speech _g3.name>>
"We're so happy like this.
You'll love it too."
<</speech>>
Jasper lifts <<print _g3.name>> slightly, unzips, and guides her down onto his cock. She sinks slowly, taking him deep, inner walls clenching tight as she rides him with gentle, rhythmic motions.
<video @src="'img/' + _g3.name + '/Jasper/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> moves behind <<print _g3.name>>, pressing her breasts against her back, hands roaming over her chest, pinching her nipples while she rides.
Jasper pulls <<print _g3.name>> down hard one last time, thrusting up deep — he comes inside her with a low groan, thick spurts filling her completely.
<video @src="'img/' + _g3.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> continues sucking Jasper clean, tongue swirling around his spent cock, swallowing every drop.
<video @src="'img/' + _g2.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> kneels beside Jasper, taking him into her mouth next — deep, eager, throat working as she bobs slowly.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The attic is warm.
The scent lingers.
Four figures kneel together in perfect stillness — one master, three devoted guardians, and one new addition who no longer needs to fight.
Nathan's head rests against Jasper's chest.
His breathing is slow, even.
His eyes are dull, empty, waiting.
<<speech "Jasper">>
"You're safe now, Nathan.
We all are."
<</speech>>
The eclipse may have passed,
but the chains it forged will never break.
The rain continues outside. Inside, the house is still. And Nathan—once the protector, with <<print _missingNames.join(" and ")>> still beyond his reach—kneels in perfect, absolute obedience.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The scene unfolds in Nathan's off-campus apartment, a modest two-bedroom haven on the quiet edge of campus. Late evening rain taps steadily against the windows, muffling the outside world to a soft gray hum. Inside, the living room glows dimly from a single floor lamp and the frozen blue light of a paused TV. The air carries faint traces of sandalwood from a half-burned candle and the comforting warmth of leftover takeout boxes on the coffee table. It feels familiar, safe—until the front door opens without warning.
<<print _g1.name>> steps in first, shaking droplets from her hair, her normal casual outfit slightly damp from the rain.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"Hey… you left your phone behind again. We figured we'd bring it over before you worried."
<</speech>>
<<print _g2.name>> follows close behind, pushing back her hood, dressed in her usual everyday style.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"We brought the crew. You look like you need us tonight."
<</speech>>
<<print _g3.name>> enters next, moving with quiet grace in her typical casual clothes.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"We got worried when you went quiet. Tonight feels off, doesn't it?"
<</speech>>
<<print _g4.name>> is last, striding in with easy confidence in her usual athletic-casual look, closing the door gently behind her.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"Couldn't let you brood alone. We just want to take care of you now… the way you always have."
<</speech>>
Nathan rises slowly from the couch, confusion tightening his features, protective instinct clashing with a growing knot of dread.
<<speech "Nathan">>
"What is this? All of you… showing up like this, in the rain? Something's wrong. Tell me."
<</speech>>
The girls share serene glances, stepping closer in a gentle arc around him. Their voices blend in soft, overlapping reassurances—loving, final.
The door opens again.
Jasper enters calmly, rain glistening on his coat like scattered diamonds. The atmosphere thickens instantly with Thornfield's signature alchemy: warm vanilla undercut by darker crushed petals and iron. It drifts through the room in invisible currents, seeping into skin and thought. Nathan's breath catches; pupils flare wide as unwanted heat surges through him, resistance fraying at the edges.
<<speech "Jasper">>
"You've guarded them so fiercely. But true safety isn't walls and promises anymore. It's absolute certainty. Tonight… they chose it."
<</speech>>
They move together, fluid and reverent.
<<print _g1.name>> reaches him first, hands gentle yet unyielding as she guides him back to the couch. <<print _g2.name>> flanks him on one side, sliding under his shirt to help lift it away while <<print _g3.name>> kneels between his legs, eyes locked on his with tender sorrow. <<print _g4.name>> stands behind, hands on his shoulders holding him in place as the others strip him bare.
Clothes pool on the floor until all four stand exposed, skin luminous in the low light, bodies pressing close in worshipful coordination.
Two drop to their knees first, mouths devoted to Jasper in slow, tandem oral worship, tongues gliding in perfect sync, eyes occasionally lifting to Nathan with soft, accepting glances.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The others join seamlessly, moans soft and wet, the scent blooming thicker.
Then the full claiming begins.
One straddles Jasper first, sinking down with a quiet exhale of relief, hips rolling in deep, steady rhythm as she takes him completely.
<video @src="'img/' + _g3.name + '/Jasper/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The last mounts reverse so Nathan watches every inch vanish inside her, gasps sharpening into desperate need as Jasper finishes deep, marking her fully with a visible creampie finish.
<video @src="'img/' + _g4.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To seal the break, they turn to Nathan himself—restraining his wrists lightly as the two who started on their knees return, mouths working him in cruel tenderness while the others hold him open, forcing the helpless crest: his body betrays him in a wrenching, sobbing release.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Nathan collapses forward onto his knees, tears streaming, no fight left.
The four rise gracefully, stepping behind Jasper in a flawless line—naked, calm, utterly remade. Their eyes hold only him now.
<<speech "Jasper">>
"Welcome to your new place, Nathan. No more protecting. No more carrying the weight alone. Just… belonging. Safe, forever, in the only way that lasts."
<</speech>>
They stand as perfect dolls, rain drumming on, the apartment irrevocably his domain now.
The moonlight continues outside. Inside, the house is still. And Nathan—once the protector, with <<print _missingNames[0]>> the last soul still beyond Jasper's reach—kneels in perfect, absolute obedience.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The scene unfolds in Nathan's off-campus apartment, a modest two-bedroom haven on the quiet edge of campus. Late evening rain taps steadily against the windows, muffling the outside world to a soft gray hum. Inside, the living room glows dimly from a single floor lamp and the frozen blue light of a paused TV. The air carries faint traces of sandalwood from a half-burned candle and the comforting warmth of leftover takeout boxes on the coffee table. It feels familiar, safe—until the front door opens without warning.
<<print _g1.name>> steps in first, shaking droplets from her hair, her normal casual outfit slightly damp from the rain.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"Hey… you left your phone behind again. We figured we'd bring it over before you worried."
<</speech>>
<<print _g2.name>> follows close behind, pushing back her hood, dressed in her usual everyday style.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"We brought the whole squad. You look like you need us tonight."
<</speech>>
<<print _g3.name>> enters next, moving with quiet grace in her typical casual clothes.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"We got worried when you went quiet. Tonight feels off, doesn't it?"
<</speech>>
<<print _g4.name>> slips in quietly, her normal outfit swaying gently as she closes the door.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"…We've been talking. We just want to take care of you now. The way you always have."
<</speech>>
<<print _g5.name>> is last, striding in with easy confidence in her usual athletic-casual look.
<img @src="'img/' + _g5.name + '/Normal.jpg'">
<<speech _g5.name>>
"Couldn't let you brood alone. You know I show up when it counts."
<</speech>>
Nathan rises slowly from the couch, confusion tightening his features, protective instinct clashing with a growing knot of dread.
<<speech "Nathan">>
"What is this? All of you… showing up like this, in the rain? Something's wrong. Tell me."
<</speech>>
The girls share serene glances, stepping closer in a gentle arc around him. Their voices blend in soft, overlapping reassurances—loving, final.
The door opens again.
Jasper enters calmly, rain glistening on his coat like scattered diamonds. The atmosphere thickens instantly with Thornfield's signature alchemy: warm vanilla undercut by darker crushed petals and iron. It drifts through the room in invisible currents, seeping into skin and thought. Nathan's breath catches; pupils flare wide as unwanted heat surges through him, resistance fraying at the edges.
<<speech "Jasper">>
"You've guarded them so fiercely. But true safety isn't walls and promises anymore. It's absolute certainty. Tonight… they chose it."
<</speech>>
They move together, fluid and reverent.
<<print _g1.name>> reaches him first, hands gentle yet unyielding as she guides him back to the couch. <<print _g2.name>> and <<print _g3.name>> flank him, sliding under his shirt to lift it away while <<print _g4.name>> kneels between his legs, eyes locked on his with tender sorrow. <<print _g5.name>> stands behind, hands on his shoulders holding him in place as the others strip him bare.
Clothes pool on the floor until all five stand exposed, skin luminous in the low light, bodies pressing close in worshipful coordination.
Two drop to their knees first, mouths devoted to Jasper in slow, tandem oral worship, tongues gliding in perfect sync, eyes occasionally lifting to Nathan with soft, accepting glances.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The others join seamlessly, moans soft and wet, the scent blooming thicker.
Then the full claiming begins.
One straddles Jasper first, sinking down with a quiet exhale of relief, hips rolling in deep, steady rhythm as she takes him completely.
<video @src="'img/' + _g3.name + '/Jasper/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Another follows, mounting reverse so Nathan watches every inch vanish inside her, gasps sharpening into desperate need as Jasper finishes deep, marking her fully with a visible creampie finish.
<video @src="'img/' + _g4.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The last rides hard and fast, body flexing powerfully until Jasper floods her too, strength dissolving into shuddering surrender as the thick release spills out.
<video @src="'img/' + _g5.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To seal the break, they turn to Nathan himself—restraining his wrists lightly as two kneel again, mouths working him in cruel tenderness while the others hold him open, forcing the helpless crest: his body betrays him in a wrenching, sobbing release.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Nathan collapses forward onto his knees, tears streaming, no fight left.
The five rise gracefully, stepping behind Jasper in a flawless line—naked, calm, utterly remade. Their eyes hold only him now.
<<speech "Jasper">>
"Welcome to your new place, Nathan. No more protecting. No more carrying the weight alone. Just… belonging. Safe, forever, in the only way that lasts."
<</speech>>
They stand as perfect dolls, rain drumming on, the apartment irrevocably his domain now.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Jasper/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'NATHAN' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO JASPER]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF LUST</h1>
<<silently>>
<<set _mID to "jasper">>
<<set _vID to "josh">>
<<set _joshKeys to $vices.josh.keys>> /* ["alina", "lana", "lily", "elsa"] */
/* Find all of Josh's keys that Jasper has at Stage 3 */
<<set _joshConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _joshKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_joshConquered.includes(c.id))>> <<run _heldByMe.shuffle()>>
<<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _joshKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The scene unfolds in Josh's off-campus house, the dimly lit living room cluttered with gym equipment and scattered clothes. Late evening shadows stretch long across the floor from a single overhead bulb. The air is stale, heavy with tension—until the front door opens without warning.
<<print _g1.name>> steps in first, already changed into delicate lingerie that clings softly to her form.
<img @src="'img/' + _g1.name + '/Corr2.jpg'">
<<speech _g1.name>>
"Josh… we couldn't stay away. You've been alone with all that anger for too long."
<</speech>>
<<print _g2.name>> follows quietly, moving with gentle grace in her own set of lingerie.
<img @src="'img/' + _g2.name + '/Corr2.jpg'">
<<speech _g2.name>>
"We're here now. Let us take care of you. Like family should."
<</speech>>
<<print _g3.name>> enters last, closing the door with a soft click, her lingerie delicate and inviting.
<img @src="'img/' + _g3.name + '/Corr2.jpg'">
<<speech _g3.name>>
"No more pushing people away. No more being left behind. We chose to stay… with him."
<</speech>>
Josh rises sharply from the couch, eyes narrowing in confusion and rising fury.
<<speech "Josh">>
"What the fuck is this? Why are you three dressed... like that? Explain before I—"
<</speech>>
The girls step closer in a soft, enveloping arc, voices low and soothing, overlapping like a lullaby.
The front door opens again.
Jasper enters calmly, rain from earlier still glistening faintly on his coat. The air thickens instantly with Thornfield alchemy—a warm, enveloping scent of vanilla and crushed petals laced with something deeper, almost maternal. It rolls through the room in invisible waves, sinking into skin, into lungs, into thoughts already softened by weeks of careful exposure. Josh's shoulders tense, but his pupils dilate; heat blooms low and insistent, old rage melting into an unfamiliar ache of dependence.
<<speech "Jasper">>
"Josh. You've fought so hard to keep everyone at arm's length. But safety isn't distance. It's certainty. It's family. Your girls already found theirs… and tonight, so will you."
<</speech>>
They move together, fluid and tender.
<<print _g1.name>> reaches him first, hands gentle on his arms as she guides him back to the couch. <<print _g2.name>> and <<print _g3.name>> flank him, sliding fingers under his shirt to lift it away while the lingerie clings to their skin, lace and silk shifting with every motion.
Clothes fall away until Josh is bare; bodies close in worshipful coordination.
Two drop to their knees first, mouths devoted to Jasper in slow, tandem oral worship—tongues gliding in perfect sync, eyes occasionally lifting to Josh with soft, apologetic-turned-accepting glances.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The scent blooms thicker, moans soft and wet.
Then the full claiming begins.
One straddles Jasper first, pushing lace aside to sink down with a quiet exhale of relief, hips rolling in deep, steady rhythm as she takes him completely.
<video @src="'img/' + _g3.name + '/Jasper/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To seal the break, they turn to Josh—restraining his wrists lightly as the two who began on their knees return, mouths working him in cruel tenderness while the third holds him open, forcing the helpless crest: his body betrays him in a wrenching, sobbing release.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The final act: the last girl mounts Jasper again, riding slowly until he finishes deep inside with a visible creampie, lace still framing her thighs as the thick release spills.
<video @src="'img/' + _g2.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Josh collapses forward onto his knees, tears streaking his face, no fight left.
The three rise gracefully, slipping out of their lingerie to stand naked behind Jasper in a flawless line—serene, calm, utterly remade. Their eyes hold only him now.
<<speech "Jasper">>
"Welcome to your new family, Josh. No more being the angry one. No more being left behind. Just… belonging. Safe, at last, in the only way that matters."
<</speech>>
They stand as perfect dolls, the house no longer a fortress of isolation but a warm, inescapable home.
The rain continues outside. Inside, the house is still. And Josh—once the rival, with <<print _missingNames.join(" and ")>> still beyond Jasper's reach—kneels in perfect, absolute obedience.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The scene unfolds in Josh's off-campus house, the dimly lit living room cluttered with gym equipment and scattered clothes. Late evening shadows stretch long across the floor from a single overhead bulb. The air is stale, heavy with tension—until the front door opens without warning.
<<print _g1.name>> steps in first, already bare, skin glowing softly in the low light.
<img @src="'img/' + _g1.name + '/Corr3.jpg'">
<<speech _g1.name>>
"Josh… we couldn't wait any longer. You've been carrying all that pain alone."
<</speech>>
<<print _g2.name>> follows quietly, naked and unashamed, moving with gentle purpose.
<img @src="'img/' + _g2.name + '/Corr3.jpg'">
<<speech _g2.name>>
"We're your family now. Let us hold you. Let us keep you safe."
<</speech>>
<<print _g3.name>> enters next, closing the door softly behind her, body exposed and serene.
<img @src="'img/' + _g3.name + '/Corr3.jpg'">
<<speech _g3.name>>
"You don't have to fight anymore. We chose to belong… and so will you."
<</speech>>
<<print _g4.name>> is last, stepping forward naked, calm and warm in the dim room.
<img @src="'img/' + _g4.name + '/Corr3.jpg'">
<<speech _g4.name>>
"No more being left behind, Josh. We're here. All of us. For good."
<</speech>>
Josh staggers back a step, eyes wide, voice cracking between rage and something rawer.
<<speech "Josh">>
"What the hell… you're all—naked? This isn't you. Get dressed and get out—now!"
<</speech>>
<<print _g1.name>> tilts her head, voice soft but steady.
<<speech _g1.name>>
"It's okay to be scared. We were too… at first. But he showed us how good it feels to stop running."
<</speech>>
<<print _g3.name>> steps closer, reaching out a gentle hand.
<<speech _g3.name>>
"You're shaking. Let us help. Let us make it stop hurting."
<</speech>>
The front door opens again.
Jasper enters calmly, coat already shed, shirt unbuttoned halfway. The air blooms thick with Thornfield alchemy—warm vanilla and crushed petals, undercut by something iron-rich and intimate. It wraps around Josh like a blanket, seeping into every pore, stirring old loneliness into desperate need for connection. His breath hitches; fists unclench; heat pools low as resistance frays into aching dependence.
<<speech "Jasper">>
"Josh. You built walls so high no one could reach you. But walls don't protect—they isolate. Your girls found their way home… and I'm here to bring you with them. No more abandonment. No more anger. Just family."
<</speech>>
<<speech "Josh">>
"You… you did this to them? You poisoned them with your fucking perfumes? I'll kill you—"
<</speech>>
<<print _g2.name>> presses a finger gently to his lips, eyes shining with quiet sorrow.
<<speech _g2.name>>
"Shh. No more threats. No more fighting. Just listen. Just feel."
<</speech>>
They converge with tender inevitability.
<<print _g1.name>> guides him back to the couch, bare skin brushing his as she eases him down. <<print _g2.name>> and <<print _g3.name>> flank him, hands sliding over his chest to strip away his shirt and pants while <<print _g4.name>> kneels between his legs, palms warm on his thighs.
Clothes gone, Josh bare and trembling; the four remain naked, bodies close in reverent, familial coordination.
Two drop to their knees first, mouths devoted to Jasper in slow, tandem oral worship—tongues gliding lovingly, eyes occasionally lifting to Josh with soft reassurance.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The scent deepens, moans quiet and intimate.
<<speech "Josh">>
"(hoarse, breaking) Stop… please… don't make me watch this…"
<</speech>>
<<print _g3.name>> leans in, whispering against his ear.
<<speech _g3.name>>
"We're not making you do anything. We're showing you what you've been missing. What we all needed."
<</speech>>
Then the full claiming.
One straddles Jasper first, sinking down with a soft sigh of homecoming, hips rolling in deep, nurturing rhythm.
<video @src="'img/' + _g3.name + '/Jasper/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Another follows, mounting reverse so Josh sees every inch vanish inside her, breath catching as Jasper finishes deep with a slow, visible creampie.
<video @src="'img/' + _g4.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To complete the bond, they turn to Josh—two holding his wrists gently while the other two kneel again, mouths working him in tender insistence, forcing the helpless crest: his body shudders into a wrenching, sobbing release.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<speech "Josh">>
"(choked, tears falling) I… I can't… don't leave me…"
<</speech>>
<<print _g2.name>> strokes his cheek, voice warm.
<<speech _g2.name>>
"We're not leaving. We're taking you with us. Where you belong."
<</speech>>
The four rise gracefully, stepping behind Jasper in a flawless naked line—serene, calm, utterly remade. Their eyes hold only him now.
<<speech "Jasper">>
"There you are. Welcome home, Josh. No more fighting. No more being the outsider. Just family. Safe. Loved. Forever."
<</speech>>
They stand as perfect dolls, the house transformed into a warm, inescapable embrace.
The moonlight continues outside. Inside, the house is still. And Josh—once the rival, with <<print _missingNames[0]>> the last soul still beyond Jasper's reach—kneels in perfect, absolute obedience.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The scene unfolds in Josh's off-campus house, the dimly lit living room cluttered with gym equipment and scattered clothes. Late evening shadows stretch long across the floor from a single overhead bulb. The air is stale, heavy with tension—until the front door opens without warning.
<<print _g1.name>> steps in first, dressed in her normal casual outfit.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"Josh… we've missed you. You've been shutting us out for so long."
<</speech>>
<<print _g2.name>> follows quietly, in her usual everyday style.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"We're not here to fight. We're here to bring you home."
<</speech>>
<<print _g3.name>> enters next, closing the door softly behind her in her typical casual clothes.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"You don't have to be alone anymore. We found our place… and it's waiting for you too."
<</speech>>
<<print _g4.name>> steps forward after her, calm and warm in her familiar look.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"No more pushing everyone away. No more being the one left behind."
<</speech>>
<<print _g5.name>> is last, moving with gentle certainty.
<img @src="'img/' + _g5.name + '/Normal.jpg'">
<<speech _g5.name>>
"We chose him. We chose family. Now it's your turn to choose us."
<</speech>>
Josh stands abruptly, voice rough with confusion and barely contained rage.
<<speech "Josh">>
"What the hell did he do to you? Get out—get the fuck out of my house!"
<</speech>>
<<print _g1.name>> steps closer, voice soft but steady.
<<speech _g1.name>>
"He didn't do anything to us. He showed us what real safety feels like. What real belonging feels like."
<</speech>>
<<print _g3.name>> reaches out a gentle hand, eyes warm.
<<speech _g3.name>>
"You're shaking, Josh. It's okay. We were scared too… until we let go."
<</speech>>
The front door opens again.
Jasper enters calmly, coat draped over his arm, shirt sleeves rolled up. The air instantly thickens with Thornfield alchemy—warm vanilla and crushed petals, laced with something deeper and comforting, like hearth smoke and iron. It drifts through the room in gentle waves, sinking into every breath, stirring buried loneliness into desperate, aching need for connection. Josh's fists unclench; his breath catches; heat blooms low and insistent as old walls begin to crumble.
<<speech "Jasper">>
"Josh. You built your life around keeping people away because you were terrified they'd leave first. But look at them—they didn't leave. They came back. For you. And for me. Tonight, we make sure you never have to be alone again."
<</speech>>
<<speech "Josh">>
"(voice cracking) You think some fucking scent is gonna break me? You think I'm that weak?"
<</speech>>
<<print _g2.name>> moves beside him, hand resting lightly on his arm.
<<speech _g2.name>>
"It's not weakness to need someone. It's strength to let them in."
<</speech>>
They converge with tender, inevitable grace.
<<print _g1.name>> guides him back toward the couch, hands gentle on his shoulders. <<print _g2.name>> and <<print _g3.name>> flank him, fingers working under his shirt to lift it away while <<print _g4.name>> and <<print _g5.name>> kneel close, helping ease his pants down.
Clothes pool on the floor until everyone is bare.
Two drop to their knees first, mouths devoted to Jasper in slow, tandem oral worship—tongues gliding lovingly, eyes occasionally lifting to Josh with soft reassurance.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The scent deepens; soft moans blend with the rustle of clothes.
<<speech "Josh">>
"(hoarse, trembling) Stop… don't… I can't watch this…"
<</speech>>
<<print _g4.name>> leans in, whispering against his ear.
<<speech _g4.name>>
"You don't have to fight it anymore. Just let it happen. Just let us love you."
<</speech>>
Then the full claiming begins.
One pushes her skirt aside and straddles Jasper first, sinking down with a quiet sigh of homecoming, hips rolling in deep, nurturing rhythm.
<video @src="'img/' + _g3.name + '/Jasper/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Another follows, hiking her outfit up to mount reverse so Josh sees every inch vanish inside her, breath hitching as Jasper finishes deep with a slow, visible creampie that glistens against fabric edges.
<video @src="'img/' + _g4.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The third takes her turn next, riding devotedly until Jasper floods her too, thick release spilling as her normal clothes frame the intimate moment.
<video @src="'img/' + _g5.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To seal the bond, they turn to Josh—two holding his wrists gently while the other three kneel or straddle close: mouths and hands working him in tender insistence, forcing the helpless crest: his body shudders into a wrenching, sobbing release.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Josh/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<speech "Josh">>
"(choked, tears falling) Don't… don't leave me out here… please…"
<</speech>>
<<print _g5.name>> strokes his cheek, voice warm and certain.
<<speech _g5.name>>
"We're not leaving you anywhere. We're taking you home. With us. With him."
<</speech>>
The five rise gracefully, stepping behind Jasper in a flawless line—still in their normal outfits, serene, calm, utterly remade. Their eyes hold only him now.
<<speech "Jasper">>
"There you are. Welcome to the family, Josh. No more walls. No more anger. No more being the one left behind. Just us. Safe. Loved. Forever."
<</speech>>
They stand as perfect dolls, the house transformed into a warm, inescapable home.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Jasper/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'JOSH' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO JASPER]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF LUST</h1>
<<silently>>
<<set _mID to "caldwell">>
<<set _vID to "josh">>
<<set _joshKeys to $vices.josh.keys>> /* ["alina", "lana", "lily", "elsa"] */
/* Find all of Josh's keys that Caldwell has at Stage 3 */
<<set _joshConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _joshKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_joshConquered.includes(c.id))>> <<run _heldByMe.shuffle()>>
<<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _joshKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The scene unfolds in Josh's off-campus house, the dimly lit living room cluttered with gym equipment and scattered clothes. Late evening shadows stretch long across the floor from a single overhead bulb. The air is stale, heavy with tension—until the front door opens without warning.
<<print _g1.name>> steps in first, dressed in her normal casual outfit.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"Josh. We needed to see you. Things have become... unsustainable."
<</speech>>
<<print _g2.name>> follows quietly, in her usual everyday style.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"You keep resisting. It's inefficient. We're here to correct that."
<</speech>>
<<print _g3.name>> enters last, closing the door with a soft click, her typical casual clothes unchanged.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"No more chaos. No more fighting the inevitable. Submit to the process."
<</speech>>
Josh rises from the couch, fists clenched, voice sharp with confusion and anger.
<<speech "Josh">>
"What the hell is this? What are you three talking about? Get the fuck out—"
<</speech>>
The girls step forward in perfect unison, expressions blank and synchronized, voices calm and overlapping like a single directive.
The door opens again.
Caldwell enters, posture rigid, eyes cold and assessing behind thin glasses. A low, clinical hum seems to emanate from him—Will Overload activating in precise waves. Josh's body stiffens as invisible threads of command wrap around his mind, forcing compliance, resistance fracturing under relentless mental pressure. His pupils dilate; breath shallows; old fury flattens into blank obedience.
<<speech "Caldwell">>
"Josh. Your system is unstable. Excessive aggression, poor impulse control, emotional leakage. Recalibration is required. Your assets have already been synchronized. Observe."
<</speech>>
They move with mechanical precision.
<<print _g1.name>> approaches first, hands guiding Josh back to the couch with impersonal firmness. <<print _g2.name>> and <<print _g3.name>> flank him, stripping his shirt and pants away methodically while undressing themselves in perfect sync.
Clothes discarded, the three stand bare—bodies aligned, expressions vacant, ready for programming.
Two kneel first, mouths servicing Caldwell in slow, synchronized oral worship, movements identical, eyes never leaving his face.
<video @src="'img/' + _g1.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the protocol advances.
One straddles Caldwell first, lowering herself with clinical detachment, hips moving in measured rhythm as she accepts full penetration.
<video @src="'img/' + _g3.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To accelerate Josh's breakdown, they redirect to him—restraining his arms as the two who began on Caldwell return, one mouth now working Josh in cold, mechanical tandem, forcing arousal while the other holds his head steady, making him watch.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The final synchronization: the remaining girl mounts Caldwell again, riding until he finishes deep inside with precise, visible release.
<video @src="'img/' + _g2.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Josh's resistance collapses—body shuddering into forced climax under their detached ministrations, mind fracturing as the last of his will erases. He drops to his knees, eyes glazing over.
The three rise in unison, stepping behind Caldwell in a perfect line—naked, blank, synchronized. Their expressions hold only programmed obedience.
<<speech "Caldwell">>
"Recalibration complete. You are no longer autonomous. You are component. Welcome to the network, Josh."
<</speech>>
They stand as flawless dolls, the house now a sterile node in Caldwell's domain.
The rain continues outside. Inside, the house is still. And Josh—once the rival, with <<print _missingNames.join(" and ")>> still beyond Caldwell's reach—kneels in perfect, absolute obedience.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The scene unfolds in Josh's off-campus house, the dimly lit living room cluttered with gym equipment and scattered clothes. Late evening shadows stretch long across the floor from a single overhead bulb. The air is stale, heavy with tension—until the front door opens without warning.
<<print _g1.name>> steps in first, dressed in her normal casual outfit.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"Josh. You've been running on fumes for too long. We're here to fix that."
<</speech>>
<<print _g2.name>> follows quietly, in her usual everyday style.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"No more excuses. No more pretending you're in control. Time to let go."
<</speech>>
<<print _g3.name>> enters next, closing the door with a soft click, her typical casual clothes unchanged.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"You always thought you were the one breaking things. Cute. Watch how it's really done."
<</speech>>
<<print _g4.name>> is last, stepping forward with calm certainty in her familiar look.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"We're going to enjoy this. And so will you… eventually."
<</speech>>
Josh surges to his feet, fists balled, voice cracking with fury and disbelief.
<<speech "Josh">>
"You think you can just walk in here and—fuck this. Get out. All of you. NOW."
<</speech>>
The girls glide closer in eerie unison, expressions serene yet hungry, voices blending into a low, coaxing murmur.
The front door opens again.
Caldwell steps inside, a slow, predatory smile curling his lips. His eyes gleam with genuine delight as Will Overload unfurls—not a sterile wave, but a thick, syrupy pressure that slides into Josh's skull like warm oil. It doesn't just command; it teases, stroking old angers and buried cravings until they swell grotesquely, forcing arousal and humiliation in equal measure. Josh's knees buckle slightly, breath hitching as his own body begins to betray him under the weight of engineered desire.
<<speech "Caldwell">>
"Oh, Josh. Look at you—still snarling, still pretending you're the apex predator. I've always found your little tantrums adorable. But playtime's over. Your girls already chose the winning team… and now it's your turn to learn how good it feels to lose."
<</speech>>
They descend with languid grace.
<<print _g1.name>> presses against him first, hands sliding up his chest as she pushes him back onto the couch. <<print _g2.name>> and <<print _g3.name>> peel his clothes away with slow, deliberate caresses while <<print _g4.name>> kneels between his legs, gaze locked on his with mocking tenderness as the rest undress themselves.
Clothes hit the floor until all four stand bare, bodies gleaming faintly in the low light, moving with synchronized, almost theatrical sensuality.
Two drop to their knees before Caldwell, mouths enveloping him in slow, worshipful oral worship—tongues curling, lips sliding, eyes occasionally flicking up to Josh with cruel, knowing smiles.
<video @src="'img/' + _g1.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The air thickens with wet sounds and soft, taunting moans.
Then the real game begins.
One straddles Caldwell first, sinking down with a theatrical gasp of pleasure, hips grinding in deep, rolling circles as she takes every inch.
<video @src="'img/' + _g3.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To twist the knife, they turn to Josh—two of them pinning his arms while the remaining girl guides his straining cock into her mouth, sucking with deliberate slowness, forcing him to the edge without mercy while he watches Caldwell claim another.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The final act: the last girl mounts Caldwell reverse, riding hard and shameless until he finishes deep inside her with a visible, thick creampie that spills out as she shudders in exaggerated bliss.
<video @src="'img/' + _g4.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Josh's defiance shatters completely—body convulsing into a helpless, sobbing orgasm under their combined assault, mind buckling as the last threads of control snap. He collapses forward onto his knees, chest heaving, eyes glassy.
The four rise smoothly, stepping behind Caldwell in a perfect, naked line—expressions serene yet laced with lingering sadistic satisfaction. Their eyes hold only him now.
<<speech "Caldwell">>
"There we go. All that rage, all that noise… gone. You're so much prettier when you're broken, Josh. Welcome to the collection. I'm going to have so much fun rewriting you."
<</speech>>
They stand as flawless, depraved dolls, the house now a playground for Caldwell's twisted amusement.
The moonlight continues outside. Inside, the house is still. And Josh—once the rival, with <<print _missingNames[0]>> the last soul still beyond Caldwell's reach—kneels in perfect, absolute obedience.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The scene unfolds in Josh's off-campus house, the dimly lit living room cluttered with gym equipment and scattered clothes. Late evening shadows stretch long across the floor from a single overhead bulb. The air is stale, heavy with tension—until the front door opens without warning.
<<print _g1.name>> steps in first, dressed in her normal casual outfit.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"Josh. You've been spiraling for too long. We're ending it tonight."
<</speech>>
<<print _g2.name>> follows quietly, in her usual everyday style.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"All that anger… it's just noise now. We're going to make it quiet."
<</speech>>
<<print _g3.name>> enters next, closing the door with a soft click, her typical casual clothes unchanged.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"You thought you were untouchable. Look how easy it was to turn us."
<</speech>>
<<print _g4.name>> steps forward after her, calm and certain in her familiar look.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"You are finally going to be fixed."
<</speech>>
<<print _g5.name>> is last, moving with deliberate grace in her usual style.
<img @src="'img/' + _g5.name + '/Normal.jpg'">
<<speech _g5.name>>
"No more games. No more pretending. Time to become what you were always meant to be."
<</speech>>
Josh surges to his feet, voice raw with fury and disbelief.
<<speech "Josh">>
"You think you can just barge in here and—fuck all of you. Get the hell out of my house!"
<</speech>>
The five glide closer in eerie, synchronized motion, expressions serene yet edged with dark anticipation, voices blending into a low, taunting chorus.
The front door opens again.
Caldwell steps inside, lips curling into a wide, delighted grin. His eyes sparkle with genuine, depraved pleasure as Will Overload pours out—not cold, not mechanical, but thick, teasing, invasive—like fingers sliding under skin to stroke every buried impulse. Josh's knees nearly give as waves of engineered lust and humiliation crash through him, old rage twisting into throbbing need, body heating against his will.
<<speech "Caldwell">>
"Josh, Josh, Josh… still barking like you're in charge. I love that about you. The denial makes the collapse so much sweeter. Your girls? Already mine. And now… you get to be the main event. Sit. Watch. Feel."
<</speech>>
They descend with theatrical slowness.
<<print _g1.name>> presses against him first, hands sliding up his chest to push him back onto the couch. <<print _g2.name>> and <<print _g3.name>> peel his clothes away with lingering caresses while <<print _g4.name>> and <<print _g5.name>> begin undressing themselves, revealing skin inch by inch.
Clothes discarded, the five stand bare, bodies gleaming in the low light.
Two drop to their knees before Caldwell, mouths enveloping him in slow, worshipful oral worship—tongues curling in perfect tandem, lips sliding deep.
<video @src="'img/' + _g1.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The wet sounds fill the room, moans deliberately exaggerated.
Then the escalation begins.
One straddles Caldwell first, sinking down with a long, theatrical moan, hips grinding in deep, rolling circles.
<video @src="'img/' + _g3.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Another follows immediately after, mounting reverse so Josh has a perfect view of every inch disappearing inside her.
<video @src="'img/' + _g4.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The third takes her turn next, riding hard and shameless, body arching as Caldwell finishes deep with a thick, visible creampie that spills out slowly.
<video @src="'img/' + _g5.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To twist the knife deeper, they redirect to Josh—two of them pinning his arms wide while the remaining three take turns on him: one mouth, then another, then a third straddling his lap, grinding against him without letting him finish, forcing him to the brink over and over.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Josh/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g3.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The final sequence returns to Caldwell: the last girl rides him again, slow and deliberate, until he floods her once more with another heavy creampie, pulling out just enough for the thick release to drip visibly.
<video @src="'img/' + _g4.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Josh's body convulses—forced over the edge by their relentless, mocking touches, a wrenching, sobbing orgasm ripping through him as his mind finally splinters. He collapses forward onto his knees, chest heaving, eyes vacant and wet.
The five rise smoothly, stepping behind Caldwell in a perfect, naked line—expressions serene, satisfied, utterly owned. Their eyes hold only him now.
<<speech "Caldwell">>
"Beautiful. All that fire… snuffed out. You're mine now, Josh. A perfect little broken toy. And I have so many games left to play with you."
<</speech>>
They stand as flawless, depraved dolls, the house now Caldwell's personal theater of ruin.
The rain continues outside. Inside, the house is still. And Josh—once the rival, with no soul left beyond Caldwell's reach—kneels in perfect, absolute obedience.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Caldwell/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'JOSH' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO CALDWELL]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF LUST</h1>
<<silently>>
<<set _mID to "nathan">>
<<set _vID to "josh">>
<<set _joshKeys to $vices.josh.keys>> /* ["alina", "lana", "lily", "elsa"] */
/* Find all of Josh's keys that Nathan has at Stage 3 */
<<set _joshConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _joshKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_joshConquered.includes(c.id))>> <<run _heldByMe.shuffle()>> <<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _joshKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The scene unfolds in Josh's cluttered dorm room, a chaotic space on the university campus filled with empty energy drink cans and scattered workout gear. Late evening shadows stretch across the walls from a single desk lamp, the air thick with the faint scent of sweat and cheap cologne. Outside, distant laughter from passing students echoes faintly, making the room feel isolated yet deceptively normal—until the door creaks open without a knock.
<<print _g1.name>> steps in first, her normal casual outfit slightly rumpled as if from a long day.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"Hey, Josh. We were in the area... thought we'd check on you. You seemed off earlier."
<</speech>>
<<print _g2.name>> follows, dressed in her usual everyday style, offering a small smile.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"Yeah, <<if _g2.id is "lily" or _g2.id is "elsa">>$malerel<<else>>Josh<</if>>. You always say you're fine, but we know better. Let us help."
<</speech>>
<<print _g3.name>> enters last, closing the door quietly, her typical casual clothes fitting comfortably.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"We've been talking. You carry so much anger... we just want to make it better. Like old times."
<</speech>>
Josh looks up from his bed, confusion flashing across his face, resentment mixing with a flicker of old friendship's wariness.
<<speech "Josh">>
"What the hell? You three... just showing up? This isn't your place to "fix" me. Get out before I—"
<</speech>>
The girls exchange calm glances, moving closer with gentle persistence, their voices soft and overlapping in reassurance.
The door opens again.
Nathan steps in, his presence steady and unassuming, eyes meeting Josh's with a mix of sorrow and resolve. A warm surge of Love Overload radiates from him—protective affection flooding the room like a comforting embrace, twisting into possessive devotion. Josh's muscles tense, but an unwilling pull tugs at his chest, old bonds amplifying into something overwhelming, resistance crumbling under waves of forced loyalty.
<<speech "Nathan">>
"Josh... we were best friends once. I hated seeing you like this—lashing out, breaking everything. But now, they see it too. Safety isn't rage. It's belonging. With me."
<</speech>>
They converge gently but firmly.
<<print _g1.name>> guides Josh back against the wall, hands soft on his shoulders. <<print _g2.name>> and <<print _g3.name>> flank him, lifting his shirt away with tender care while undressing themselves, revealing skin in the dim light.
Clothes discard quietly until all three stand bare, bodies close in devoted coordination.
They begin with slow, worshipful oral on Nathan, mouths working in harmony, eyes flicking to Josh with apologetic affection.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the claiming deepens.
<<print _g3.name>> straddles Nathan first, sinking down with a soft sigh of relief, hips moving in loving rhythm.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> follows, mounting so Josh watches every moment, her movements devoted as Nathan finishes deep inside.
<video @src="'img/' + _g1.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> rides last, body arching in manic loyalty until Nathan claims her fully with a creampie.
<video @src="'img/' + _g2.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Josh's defiance shatters—watching his once-loyal girls remade into Nathan's devoted family, old friendship twisted into helpless need. His body betrays him, forced to a wrenching climax by their gentle touches, tears flowing as he kneels.
The three rise serenely, stepping behind Nathan—naked, unified, eyes filled only with protective love for him.
<<speech "Nathan">>
"Welcome back, Josh. Not as the angry one anymore. Just... safe. With us. Like we always should have been."
<</speech>>
They stand as perfect, devoted dolls, the dorm now a sanctuary of belonging.
The rain continues outside. Inside, the house is still. And Josh—once the rival, with <<print _missingNames.join(" and ")>> still beyond Nathan's reach—kneels in perfect, absolute obedience.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The scene unfolds in Josh's off-campus house, a slightly rundown two-story rental on the edge of campus—once shared with friends, now mostly his alone. Late evening light filters through half-drawn blinds, casting long shadows over mismatched furniture, gym equipment in the living room, and a faint haze of lingering smoke from earlier. The air feels heavy, charged with the usual mix of aggression and isolation—until the front door opens without a knock.
<<print _g1.name>> steps in first, shaking off the evening chill, her normal casual outfit fitting her like always.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"Josh… we came to check on you. You've been shutting everyone out again."
<</speech>>
<<print _g2.name>> follows right behind, her usual everyday style unchanged, eyes soft but steady.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"<<if _g2.id is "lily" or _g2.id is "elsa">>$malerel<<else>>Josh<</if>>, you don't have to keep fighting everything. We're here. Let us in."
<</speech>>
<<print _g3.name>> enters next, closing the door quietly behind her in her typical casual clothes.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"We've been worried. You used to let people close… before everything got so hard."
<</speech>>
<<print _g4.name>> is last, stepping in with calm confidence in her familiar look.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"We're not here to judge. We just want you to feel safe again. Like you deserve."
<</speech>>
Josh stands up from the couch, fists clenching instinctively, voice rough with confusion and rising anger.
<<speech "Josh">>
"The fuck is this? All four of you just walking in? This is my house. Get the hell out before—"
<</speech>>
The girls move closer in a gentle, unified arc, their voices overlapping in quiet, insistent reassurance—loving, final.
The front door opens once more.
Nathan steps inside, calm and certain, his gaze locking onto Josh's. A warm pulse of Love Overload spreads outward—protective affection swelling like a tide, wrapping around old memories of friendship, twisting them into possessive, manic devotion. Josh's shoulders lock, breath hitching as unwanted heat blooms in his chest, old loyalty surging back amplified and inescapable, resentment cracking under the weight of forced belonging.
<<speech "Nathan">>
"Josh… we were best friends once. I never stopped caring. You turned everything into war because you were scared of needing anyone. But they see it now. Safety isn't fighting alone. It's belonging. With me. Where you should have been all along."
<</speech>>
They converge with gentle inevitability.
<<print _g1.name>> reaches him first, hands steady on his arms as she guides him back toward the couch. <<print _g2.name>> and <<print _g3.name>> move to either side, lifting his shirt away while <<print _g4.name>> kneels in front, eyes meeting his with heartbreaking tenderness as they begin to strip him bare.
Clothes fall away until all four stand exposed, skin warm in the dim lamplight, bodies pressing close in reverent coordination.
Two drop to their knees first, mouths devoted to Nathan in slow, tandem oral worship, tongues moving in perfect harmony, eyes occasionally lifting to Josh with soft, accepting glances.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The others join seamlessly, soft moans filling the room, the air thick with surrendered affection.
Then the full claiming begins.
One straddles Nathan first, sinking down with a quiet breath of relief, hips rolling in deep, loving rhythm as she takes him completely.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Another follows, mounting reverse so Josh is forced to watch every inch disappear inside her, gasps turning sharp with need as Nathan finishes deep, marking her fully with a visible creampie.
<video @src="'img/' + _g4.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The last rides hard and devoted, body arching until Nathan floods her too, her surrender complete as the thick release spills.
<video @src="'img/' + _g1.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Josh's rage collapses—watching his girls remade into Nathan's loyal family, old friendship warped into helpless, aching need. His body betrays him under their tender touches, a wrenching, sobbing release forced from him as he drops to his knees.
The four rise gracefully, stepping behind Nathan in a flawless line—naked, serene, utterly devoted. Their eyes hold only protective love for him now.
<<speech "Nathan">>
"Welcome home, Josh. No more anger. No more fighting alone. Just… us. Safe. Together. The way best friends should always have been."
<</speech>>
They stand as perfect, devoted dolls, the house no longer a battleground but a sanctuary of belonging.
The moonlight continues outside. Inside, the house is still. And Josh—once the rival, with <<print _missingNames[0]>> the last soul still beyond Nathan's reach—kneels in perfect, absolute obedience.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The scene unfolds in Josh's off-campus house, a slightly rundown two-story rental on the edge of campus—once shared with friends, now mostly his alone. Late evening light filters through half-drawn blinds, casting long shadows over mismatched furniture, gym equipment in the living room, and a faint haze of lingering smoke from earlier. The air feels heavy, charged with the usual mix of aggression and isolation—until the front door opens without a knock.
<<print _g1.name>> steps in first, shaking off the evening chill, her normal casual outfit fitting her like always.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"Josh… we came because we're worried. You've been pushing everyone away again."
<</speech>>
<<print _g2.name>> follows right behind, her usual everyday style unchanged, eyes soft but determined.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"<<if _g2.id is "lily" or _g2.id is "elsa">>$malerel<<else>>Josh<</if>>, you don't have to do this alone anymore. We're here. Let us help."
<</speech>>
<<print _g3.name>> enters next, closing the door quietly behind her in her typical casual clothes.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"We've been talking about how much you're hurting. You used to let people in… we want that back for you."
<</speech>>
<<print _g4.name>> steps in after, calm and steady in her familiar look.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"We're not here to fight you. We just want you to feel safe. To belong somewhere again."
<</speech>>
<<print _g5.name>> is last, moving with quiet purpose in her usual style.
<img @src="'img/' + _g5.name + '/Normal.jpg'">
<<speech _g5.name>>
"Josh… we care about you. More than you let yourself believe. Let us show you."
<</speech>>
Josh stands up sharply from the couch, fists clenched, voice thick with confusion and barely contained fury.
<<speech "Josh">>
"What the actual fuck? All five of you just walking into my house? This is bullshit. Get out—now—before I lose it."
<</speech>>
The girls share serene glances, stepping closer in a gentle, enveloping arc around him. Their voices blend in soft, overlapping reassurances—loving, insistent, final.
The front door opens once more.
Nathan steps inside, calm and resolute, his gaze locking onto Josh's. A powerful wave of Love Overload radiates outward—protective affection swelling like a warm tide, flooding old memories of their friendship, twisting resentment into overwhelming, possessive devotion. Josh's body locks, breath catching as heat surges through him unbidden, old loyalty surging back amplified and inescapable, anger fracturing under the relentless pull of forced belonging.
<<speech "Nathan">>
"Josh… we were best friends once. I never stopped wanting to protect you—even when you hated me for it. You turned everything into a war because you were terrified of needing anyone. But they see it now. They chose it. Safety isn't fighting alone. It's belonging. With me. Where you belong."
<</speech>>
They converge with gentle, inevitable tenderness.
<<print _g1.name>> reaches him first, hands steady on his arms as she guides him back toward the couch. <<print _g2.name>> and <<print _g3.name>> move to either side, lifting his shirt away while <<print _g4.name>> kneels in front, eyes meeting his with heartbreaking tenderness. <<print _g5.name>> stands behind, strong hands on his shoulders holding him in place as the others strip him bare.
Clothes fall away until all five stand exposed, skin warm in the dim lamplight, bodies pressing close in reverent, devoted coordination.
Two drop to their knees first, mouths devoted to Nathan in slow, tandem oral worship, tongues moving in perfect harmony, eyes occasionally lifting to Josh with soft, accepting glances.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The others join seamlessly, soft moans filling the room, the air thick with surrendered affection.
Then the full claiming begins.
One straddles Nathan first, sinking down with a quiet breath of relief, hips rolling in deep, loving rhythm as she takes him completely.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Another follows, mounting reverse so Josh is forced to watch every inch disappear inside her, gasps turning sharp with need as Nathan finishes deep, marking her fully with a visible creampie.
<video @src="'img/' + _g4.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The third rides hard and devoted, body arching until Nathan floods her too, her surrender complete as the thick release spills.
<video @src="'img/' + _g5.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To seal the break, they turn to Josh himself—restraining his wrists lightly as two return to their knees, mouths working him in cruel tenderness while the others hold him open, forcing the helpless crest: his body betrays him in a wrenching, sobbing release.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Josh collapses forward onto his knees, tears streaming, rage and resistance gone.
The five rise gracefully, stepping behind Nathan in a flawless line—naked, serene, utterly devoted. Their eyes hold only protective love for him now.
<<speech "Nathan">>
"Welcome home, Josh. No more anger. No more fighting the world alone. Just… us. Safe. Together. The way best friends should always have been."
<</speech>>
They stand as perfect, devoted dolls, the house no longer a battleground but a sanctuary of belonging.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Nathan/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'JOSH' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO NATHAN]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF TRUST</h1>
<<silently>>
<<set _mID to "nathan">>
<<set _vID to "jasper">>
<<set _loserKeys to $vices.jasper.keys>> /* ["casey", "chanel", "carolina", "melody"] */
/* Find all of the loser's keys that the winner has at Stage 3 */
<<set _loserConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _loserKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_loserConquered.includes(c.id))>> <<run _heldByMe.shuffle()>> <<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _loserKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The trap is set in the attic of Havenwood Residence—the one place Jasper has always felt safest, the heart of his carefully built "family." It's late evening; the younger kids are asleep below. A single lamp casts warm golden light across the rug, and the air carries the faint, sweet scent of Thornfield's trust perfume—now laced with something warmer, deeper, impossible to resist.
Jasper climbs the ladder first, expecting a quiet night. He pulls himself up and freezes.
<<print _g1.name>> is already there, waiting. She's dressed in soft, familiar clothes, but her eyes are too warm, too focused—glass with devotion to Nathan.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"We're so happy now, Jasper. Nathan makes everything feel… right."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"You don't have to carry us alone anymore. Just let go."
<</speech>>
<<print _g3.name>> completes the circle, stepping close, her hand finding his.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"We're all safe with him. You'll be safe too."
<</speech>>
<<speech "Jasper">>
"What… what's going on? You said we needed to talk about the house…"
<</speech>>
The hatch opens again. Nathan steps up into the attic—calm, warm, unhurried. His presence radiates the quiet certainty of Love Overload, a protective affection that fills the room like a held breath, sinking into old trust and twisting it into possessive devotion.
<<speech "Nathan">>
"You've protected them so well, Jasper. Kept them safe. Kept them together. That's why they chose this. Safety isn't fear. It's belonging. With me. Where you've always belonged."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> takes his hands first, guiding him into place. <<print _g2.name>> and <<print _g3.name>> press close on either side, warm and sure, lifting his shirt away with tender care while their own clothes fall in soft piles.
Clothes discard quietly until all three stand bare, bodies close in devoted coordination.
Two drop to their knees first, mouths devoted to Nathan in slow, tandem worship—tongues gliding in perfect sync, eyes occasionally lifting to Jasper with soft, accepting glances.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Nathan first, sinking down with a soft sigh of relief, hips moving in a deep, loving rhythm as she takes him completely.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> follows, mounting so Jasper watches every moment, her movements devoted as Nathan finishes deep inside.
<video @src="'img/' + _g1.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> rides last, body arching in manic loyalty until Nathan claims her fully.
<video @src="'img/' + _g2.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Jasper's defiance crumbles. His body betrays him—knees weakening, breath catching—as his once-trusted family presses close, remade into Nathan's devoted guardians. The last threads of resistance snap.
<<speech "Nathan">>
"Welcome home, Jasper. You're not alone anymore. You never will be."
<</speech>>
They stand as perfect, devoted dolls, the attic no longer a fortress but a sanctuary of belonging.
The rain continues outside. Inside, the house is still. And Jasper—once the protector, with <<print _missingNames.join(" and ")>> still beyond Nathan's reach—kneels in perfect, absolute obedience.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The trap is set in the attic of Havenwood Residence—the one place Jasper has always felt safest, the heart of his carefully built "family." It's late evening; the younger kids are asleep below. A single lamp casts warm golden light across the rug, and the air carries the faint, sweet scent of Thornfield's trust perfume—now laced with something warmer, deeper, impossible to resist.
Jasper climbs the ladder, expecting a quiet night with his family. He pulls himself up and freezes.
<<print _g1.name>> is already there, waiting. She's dressed in soft, familiar clothes, but her eyes are too warm, too focused—glass with devotion to Nathan.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"We're so happy now, Jasper. Nathan makes everything feel… right."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"You don't have to carry us alone anymore. Just let go."
<</speech>>
<<print _g3.name>> completes the first circle, stepping close.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"We're all safe with him. You'll be safe too."
<</speech>>
<<print _g4.name>> enters last, calm and steady, taking her place among them.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"We're not here to fight you. We're here to make you whole."
<</speech>>
<<speech "Jasper">>
"What… what's going on? You said we needed to talk about the house…"
<</speech>>
The hatch opens again. Nathan steps up into the attic—calm, warm, unhurried. His presence radiates the quiet certainty of Love Overload, a protective affection that fills the room like a held breath, sinking into old trust and twisting it into possessive devotion.
<<speech "Nathan">>
"You've protected them so well, Jasper. Kept them safe. Kept them together. That's why they chose this. Safety isn't fear. It's belonging. With me. Where you've always belonged."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> guides him into place while <<print _g2.name>> and <<print _g3.name>> move to either side, lifting his shirt away. <<print _g4.name>> kneels in front, eyes meeting his with heartbreaking tenderness as they strip him bare.
Clothes fall away until all four stand exposed, bodies pressing close in reverent coordination.
Two drop to their knees first, mouths devoted to Nathan in slow, tandem worship.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Nathan first, sinking down with a quiet breath of relief, hips rolling in deep, loving rhythm.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> follows, mounting reverse so Jasper is forced to watch every inch disappear inside her.
<video @src="'img/' + _g4.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> rides last, body arching in manic loyalty until Nathan floods her, her surrender complete.
<video @src="'img/' + _g1.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Jasper's defiance crumbles. His body betrays him—knees weakening, breath catching—as his once-trusted family presses close, remade into Nathan's devoted guardians. The last threads of resistance snap.
<<speech "Nathan">>
"Welcome home, Jasper. You're not alone anymore. You never will be."
<</speech>>
They stand as perfect, devoted dolls, the attic no longer a fortress but a sanctuary of belonging.
The moonlight continues outside. Inside, the house is still. And Jasper—once the protector, with <<print _missingNames[0]>> the last soul still beyond Nathan's reach—kneels in perfect, absolute obedience.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The trap is set in the attic of Havenwood Residence—the one place Jasper has always felt safest, the heart of his carefully built "family." It's late evening; the younger kids are asleep below. A single lamp casts warm golden light across the rug, and the air carries the faint, sweet scent of Thornfield's trust perfume—now laced with something warmer, deeper, impossible to resist.
Jasper climbs the ladder, expecting a quiet night. He pulls himself up and freezes.
<<print _g1.name>> is already there, waiting. She's dressed in soft, familiar clothes, but her eyes are too warm, too focused—glass with devotion to Nathan.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"We're so happy now, Jasper. Nathan makes everything feel… right."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"You don't have to carry us alone anymore. Just let go."
<</speech>>
<<print _g3.name>> completes the first circle, stepping close.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"We're all safe with him. You'll be safe too."
<</speech>>
<<print _g4.name>> steps in after, calm and steady.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"We're not here to fight you. We're here to make you whole."
<</speech>>
<<print _g5.name>> is last, moving with quiet purpose.
<img @src="'img/' + _g5.name + '/Normal.jpg'">
<<speech _g5.name>>
"You don't have to carry it alone anymore. Let us carry you."
<</speech>>
<<speech "Jasper">>
"What… what's going on? You said we needed to talk about the house…"
<</speech>>
The hatch opens again. Nathan steps up into the attic—calm, warm, unhurried. His presence radiates the quiet certainty of Love Overload, a protective affection that fills the room like a held breath, sinking into old trust and twisting it into possessive devotion.
<<speech "Nathan">>
"You've protected them so well, Jasper. Kept them safe. Kept them together. That's why they chose this. Safety isn't fear. It's belonging. With me. Where you've always belonged."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> reaches him first while <<print _g2.name>> and <<print _g3.name>> move to either side. <<print _g4.name>> kneels in front, eyes meeting his. <<print _g5.name>> stands behind, steady hands on his shoulders, holding him in place as the others strip him bare.
Clothes fall away until all five stand exposed, bodies pressing close in reverent, devoted coordination.
Two drop to their knees first, mouths devoted to Nathan in slow, tandem worship.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Nathan first, sinking down with a quiet breath of relief.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> follows, mounting reverse so Jasper is forced to watch.
<video @src="'img/' + _g4.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g5.name>> rides last, body arching in devotion until Nathan floods her.
<video @src="'img/' + _g5.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Jasper's defiance crumbles. His body betrays him—knees weakening, breath catching—as his once-trusted family presses close, remade into Nathan's devoted guardians. The last threads of resistance snap.
<<speech "Nathan">>
"Welcome home, Jasper. You're not alone anymore. You never will be."
<</speech>>
They stand as perfect, devoted dolls, the attic no longer a fortress but a sanctuary of belonging.
The moonlight continues outside. Inside, the house is still. And Jasper—once the protector—kneels in perfect, absolute obedience, the whole of his family finally safe within Nathan's embrace.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Nathan/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'Jasper' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO Nathan]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div>
<h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF WILL</h1>
<<silently>>
<<set _mID to "nathan">>
<<set _vID to "caldwell">>
<<set _caldwellKeys to $vices.caldwell.keys>> /* ["adriana", "anya", "rae", "keisha"] */
/* Find all of the loser's keys that the winner has at Stage 3.
Girls Caldwell himself fully conquered are excluded: they transfer to
the winner as spoils and were never instruments of his defeat. */
<<set _caldwellConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _caldwellKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_caldwellConquered.includes(c.id))>> <<run _heldByMe.shuffle()>>
<<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _caldwellKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The scene unfolds in Caldwell's private office on the upper floor of the philosophy building, after official hours have long ended. Late evening light filters dimly through half-closed blinds, casting striped shadows across heavy bookshelves lined with leather-bound volumes and neatly stacked journals. The large oak desk dominates the room, flanked by two visitor chairs and a low leather couch against the far wall. The door is locked, a small "Office Hours Concluded" sign hanging outside. The air smells faintly of old paper, coffee, and polished wood—clinical, controlled—until it isn't.
<<print _g1.name>> steps in first, dressed in her normal casual-academic outfit.
<img @src="'img/' + _g1.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g1.name>>
"We needed to talk. About everything you've been carrying. You don't have to do it alone anymore."
<</speech>>
<<print _g2.name>> follows quietly, in her usual everyday style.
<img @src="'img/' + _g2.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g2.name>>
"You've always tried to fix everyone else. Tonight we fix you."
<</speech>>
<<print _g3.name>> enters last, closing and locking the door behind her with a soft click, her typical casual clothes unchanged.
<img @src="'img/' + _g3.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g3.name>>
"Safety isn't control. It's belonging. Let us show you."
<</speech>>
Caldwell looks up from his desk chair, one eyebrow arched, voice smooth and faintly amused.
<<speech "Caldwell">>
"This is an interesting staging. Unannounced after-hours visit from three of my most reliable assets. If this is an intervention, I assure you I'm quite stable."
<</speech>>
The girls share serene glances and step closer in a gentle arc, their voices soft and overlapping—reassuring, insistent.
The door unlocks from the outside.
Nathan enters calmly, closing it behind him with a quiet snick. A warm pulse of Love Overload spreads outward—protective affection like sunlight through cracked armor, wrapping around Caldwell's carefully constructed detachment and flooding the cracks with unwanted empathy, belonging, need. Caldwell's posture stiffens; his fingers tighten on the armrests; breath catches as old isolation he never acknowledged begins to ache.
<<speech "Nathan">>
"Caldwell. You built everything around staying untouchable—above emotion, above need. But no one stays above it forever. They see it now. They chose safety. They chose me. And tonight… so do you."
<</speech>>
<<speech "Caldwell">>
"(voice still even, but tighter) Charming narrative. But affection is a variable I've already accounted for. This won't—"
<</speech>>
<<print _g1.name>> moves first, hands gentle on his shoulders as she guides him up from the chair. <<print _g2.name>> and <<print _g3.name>> flank him, fingers working buttons and zippers with tender care while they begin undressing themselves.
Clothes fall away until Caldwell is bare, seated again in his own leather chair, wrists lightly held by the girls as they strip to skin.
Two drop to their knees first, mouths devoted to Nathan in slow, tandem oral worship—tongues gliding in perfect harmony, eyes occasionally lifting to Caldwell with soft, accepting glances.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The room fills with wet sounds and quiet moans.
Then the full claiming.
One straddles Nathan first, sinking down with a quiet breath of relief, hips rolling in deep, loving rhythm as she takes him completely.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Another follows, mounting reverse so Caldwell has no choice but to watch every inch disappear inside her, gasps sharpening into need as Nathan finishes deep, marking her fully with a visible creampie.
<video @src="'img/' + _g1.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To seal the break, they turn to Caldwell—restraining his arms to the chair while the two who began return, mouths and hands working him in cruel tenderness, forcing the helpless crest: his body betrays him in a wrenching, shuddering release, tears streaking his face for the first time in years.
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell collapses forward in the chair, chest heaving, composure shattered, voice barely a whisper.
<<speech "Caldwell">>
"(broken, small) …don't leave me out here…"
<</speech>>
The three rise gracefully, stepping behind Nathan in a flawless line—naked, serene, utterly devoted. Their eyes hold only protective love for him now.
<<speech "Nathan">>
"You're not out here anymore. You're safe. You're home. No more controlling everything. No more being alone at the top. Just… us. Like you always needed."
<</speech>>
They stand as perfect, devoted dolls, the office no longer a fortress of intellect but a sanctuary of belonging.
The rain continues outside. Inside, the office is still. And Caldwell—once untouchable, with <<print _missingNames.join(" and ")>> still beyond Nathan's reach—kneels in perfect, absolute obedience.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The scene unfolds in Caldwell's private office on the upper floor of the philosophy building, after official hours have long ended. Late evening light filters dimly through half-closed blinds, casting striped shadows across heavy bookshelves and the large oak desk. The door is locked, the building mostly silent. The air feels clinical and controlled—until it isn't.
<<print _g1.name>> steps in first, dressed in her normal casual-academic outfit.
<img @src="'img/' + _g1.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g1.name>>
"We needed to see you. You've been carrying everything by yourself for too long."
<</speech>>
<<print _g2.name>> follows quietly, in her usual everyday style.
<img @src="'img/' + _g2.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g2.name>>
"You always tried to stay above it all. Tonight, we're bringing you down… gently."
<</speech>>
<<print _g3.name>> enters next, closing the door with a soft click, her typical casual clothes unchanged.
<img @src="'img/' + _g3.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g3.name>>
"Safety isn't control. It's belonging. We want that for you too."
<</speech>>
<<print _g4.name>> is last, stepping forward with calm certainty in her familiar look.
<img @src="'img/' + _g4.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g4.name>>
"Let us take care of you, the way you tried to take care of everyone else."
<</speech>>
Caldwell leans back in his leather chair, one eyebrow raised, voice smooth and condescending.
<<speech "Caldwell">>
"Four of you. Coordinated entry. This is quite the orchestrated performance. If you're attempting psychological subversion, you'll need to do better than sentimental appeals."
<</speech>>
The girls share serene glances and step closer in a gentle arc, their voices soft, overlapping, and insistent.
The door unlocks from the outside.
Nathan enters calmly, closing and locking the door behind him. A warm, powerful wave of Love Overload radiates from him — protective affection flooding the room like sunlight breaking through stone, seeping into every crack of Caldwell's emotional armor. Caldwell's fingers tighten on the armrests; his composed expression flickers as unwanted longing and vulnerability surge forward.
<<speech "Nathan">>
"Caldwell. You spent years convincing yourself you didn't need anyone. That control was enough. But they see the truth now. They chose real safety. They chose belonging. Tonight… you do too."
<</speech>>
<<speech "Caldwell">>
"(voice still controlled but strained) Sentimental nonsense. You can't overwrite years of conditioning with—"
<</speech>>
<<print _g1.name>> moves first, hands gentle yet firm on his shoulders as she pulls him up from the chair. <<print _g2.name>> and <<print _g3.name>> flank him, carefully stripping his shirt and pants while <<print _g4.name>> kneels in front, helping remove the last layers.
Clothes pool on the floor until Caldwell sits bare in his own office chair, the four girls undressing completely around him.
Two drop to their knees first, mouths devoted to Nathan in slow, tandem oral worship—tongues gliding lovingly, eyes occasionally lifting toward Caldwell with soft acceptance.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the claiming deepens.
One straddles Nathan first, sinking down with a quiet sigh of relief, hips rolling in deep, loving rhythm.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Another follows, mounting reverse so Caldwell is forced to watch every inch disappear inside her, her moans growing needy as Nathan finishes deep with a thick, visible creampie.
<video @src="'img/' + _g4.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To finish breaking him, the girls restrain Caldwell's arms to his own chair while two return to him — mouths and hands working him with cruel tenderness until his body betrays him completely in a wrenching, sobbing orgasm.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell slumps forward in the chair, chest heaving, tears streaking his face, his legendary composure shattered.
The four rise gracefully, stepping behind Nathan in a flawless line—naked, serene, and utterly devoted. Their eyes hold only protective love for him now.
<<speech "Nathan">>
"You're not alone at the top anymore. You're safe. You're home. No more walls. No more control. Just us… keeping you where you belong."
<</speech>>
They stand as perfect, devoted dolls, the once-clinical office now transformed into a warm sanctuary of belonging.
The moonlight continues outside. Inside, the office is still. And Caldwell—once untouchable, with <<print _missingNames[0]>> the last soul still beyond Nathan's reach—kneels in perfect, absolute obedience.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The scene unfolds in Caldwell's private office on the upper floor of the philosophy building, long after official hours have ended. Late evening light filters dimly through half-closed blinds, casting long shadows across towering bookshelves filled with academic texts and the large oak desk that dominates the room. The door is locked, the hallway outside silent. The space feels coldly intellectual—until the atmosphere begins to shift.
<<print _g1.name>> steps in first, dressed in her normal casual-academic outfit.
<img @src="'img/' + _g1.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g1.name>>
"We've been thinking about you. You've carried everything alone for too long."
<</speech>>
<<print _g2.name>> follows quietly, in her usual everyday style.
<img @src="'img/' + _g2.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g2.name>>
"You always tried to stay above need. We're here to show you something better."
<</speech>>
<<print _g3.name>> enters next, closing the door with a soft click, her typical casual clothes unchanged.
<img @src="'img/' + _g3.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g3.name>>
"Control isn't safety. Belonging is. Let us help you feel it."
<</speech>>
<<print _g4.name>> steps forward after her, calm and warm in her familiar look.
<img @src="'img/' + _g4.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g4.name>>
"No more keeping everyone at a distance. You deserve to be held too."
<</speech>>
<<print _g5.name>> is last, moving with gentle certainty in her usual style.
<img @src="'img/' + _g5.name + '/Normal.jpg'" style="height: 300px; border: 2px solid #9c27b0; display: block; margin: 15px auto;">
<<speech _g5.name>>
"We chose safety. We chose love. Now it's your turn to come home."
<</speech>>
Caldwell leans back in his leather chair, expression cool and faintly amused.
<<speech "Caldwell">>
"All five of you. How theatrical. If this is meant to be some kind of emotional ambush, I must say your coordination is impressive, if misguided."
<</speech>>
The girls share serene glances and step closer in a gentle, enveloping arc, their voices soft, overlapping, and full of protective warmth.
The door unlocks from the outside.
Nathan enters calmly, closing and locking the door behind him. A powerful wave of Love Overload radiates outward — warm, possessive affection flooding the room like a rising tide, slipping through every crack in Caldwell's carefully constructed emotional walls. Caldwell's fingers dig into the armrests; his breathing falters as unwanted vulnerability and longing surge through him.
<<speech "Nathan">>
"Caldwell. You spent years building walls so no one could ever reach you. You told yourself control was everything. But they see the truth now. They chose real safety. They chose belonging. And tonight… you're finally going to let yourself feel it too."
<</speech>>
<<speech "Caldwell">>
"(voice strained but still sharp) This is nothing more than induced hysteria. You cannot—"
<</speech>>
<<print _g1.name>> moves first, hands gentle yet firm on his shoulders as she pulls him up from the chair. <<print _g2.name>>, <<print _g3.name>>, and <<print _g4.name>> surround him, carefully stripping his clothes while <<print _g5.name>> kneels in front, helping remove the last barriers.
Clothes pool on the floor until Caldwell is completely bare in his own office, the five girls undressing fully around him.
Two drop to their knees first, mouths devoted to Nathan in slow, tandem oral worship—tongues gliding lovingly, eyes occasionally lifting to Caldwell with soft acceptance.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
One straddles Nathan first, sinking down with a quiet sigh of relief, hips rolling in deep, loving rhythm.
<video @src="'img/' + _g3.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Another follows, mounting reverse so Caldwell is forced to watch every inch disappear inside her.
<video @src="'img/' + _g4.name + '/Nathan/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
The third rides with devoted intensity until Nathan finishes deep inside her with a thick, visible creampie.
<video @src="'img/' + _g5.name + '/Nathan/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
To shatter the last of his resistance, the girls restrain Caldwell's arms to his own chair while two of them return to him — mouths and hands working him with cruel tenderness, forcing his body to betray him completely in a wrenching, sobbing orgasm.
<video @src="'img/' + _g1.name + '/Nathan/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell slumps forward in the chair, chest heaving, tears streaking his usually composed face, his legendary self-control completely broken.
The five rise gracefully, stepping behind Nathan in a flawless line—naked, serene, and utterly devoted. Their eyes hold only protective love for him now.
<<speech "Nathan">>
"It's over, Caldwell. No more hiding behind intellect. No more being alone at the top. You're safe now. You're ours. Welcome home."
<</speech>>
They stand as perfect, devoted dolls, the once-sterile academic office now transformed into a warm sanctuary of belonging.
The rain continues outside. Inside, the office is still. And Caldwell—once untouchable, with no soul left beyond Nathan's reach—kneels in perfect, absolute obedience.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Nathan/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'CALDWELL' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO NATHAN]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF TRUST</h1>
<<silently>>
<<set _mID to "josh">>
<<set _vID to "jasper">>
<<set _loserKeys to $vices.jasper.keys>> /* ["casey", "chanel", "carolina", "melody"] */
/* Find all of the loser's keys that the winner has at Stage 3 */
<<set _loserConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _loserKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_loserConquered.includes(c.id))>> <<run _heldByMe.shuffle()>> <<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _loserKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The trap is set in the living room of Havenwood Residence—Jasper's supposed sanctuary. It's late afternoon; the house is quiet, the younger kids at after-school activities. The curtains are drawn, the lamp on low. The air carries a faint, sweet scent—Thornfield's trust perfume, now twisted into something heavier, laced with raw, hungry lust.
Jasper comes down the stairs carrying a tray of tea he'd promised for "family talk." He steps into the room and stops dead.
<<print _g1.name>> is already there, waiting. She's dressed in delicate lingerie that clings to her skin, her eyes glassy, flushed with devotion to Josh.
<img @src="'img/' + _g1.name + '/Corr2.jpg'">
<<speech _g1.name>>
"It's okay, Jasper. We're so happy now. Josh makes everything feel… right."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Corr2.jpg'">
<<speech _g2.name>>
"We don't have to be afraid anymore. Josh takes care of us."
<</speech>>
<<print _g3.name>> completes the circle, stepping close, her hand finding his.
<img @src="'img/' + _g3.name + '/Corr2.jpg'">
<<speech _g3.name>>
"You always wanted us to be a family. Now we are. Because of him."
<</speech>>
<<speech "Jasper">>
"What… what's going on? You said we needed to talk about the house…"
<</speech>>
The front door creaks open. Josh steps in—hoodie up, rain dripping from the brim, smirk already in place. He kicks the door shut and locks it, eyes never leaving Jasper's face.
<<speech "Josh">>
"Evening, big bro. Nice place you've got here. Real cozy. Your girls invited me—they've been very… persuasive."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> takes his hands first, guiding him into place. <<print _g2.name>> and <<print _g3.name>> press close on either side, warm and sure, lifting his shirt away with tender care while their own clothes fall in soft piles.
Clothes discard quietly until all three stand bare, bodies close in devoted coordination.
Two drop to their knees first, mouths devoted to Josh in slow, tandem worship—tongues gliding in perfect sync, eyes occasionally lifting to Jasper with soft, accepting glances.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Josh first, sinking down with a soft sigh of relief, hips moving in a deep, loving rhythm as she takes him completely.
<video @src="'img/' + _g3.name + '/Josh/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> follows, mounting so Jasper watches every moment, her movements devoted as Josh finishes deep inside.
<video @src="'img/' + _g1.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> rides last, body arching in manic loyalty until Josh claims her fully.
<video @src="'img/' + _g2.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Jasper's body betrays him—hips bucking, breathing ragged—as his girls perform for Josh, their eyes never leaving Jasper's face. The last of his resistance shatters into helpless, aching need.
<<speech "Josh">>
"Good boy. Welcome to the family, Jasper."
<</speech>>
The girls move to stand behind Josh—three perfect, obedient figures, their eyes fixed on their new master. Jasper kneels in perfect, absolute submission.
The rain keeps falling outside. Inside, the house is still. And Jasper—once the protector—kneels in perfect, absolute submission.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The trap is set in the living room of Havenwood Residence—Jasper's supposed sanctuary. It's late afternoon; the house is quiet, the younger kids at after-school activities. The curtains are drawn, the lamp on low. The air carries a faint, sweet scent—Thornfield's trust perfume, now twisted into something heavier, laced with raw, hungry lust.
Jasper comes down the stairs, a tray of tea in his hands for the "family talk" he promised. He steps into the room and stops dead.
<<print _g1.name>> is already there, waiting. She's dressed in delicate lingerie that clings to her skin, her eyes glassy, flushed with devotion to Josh.
<img @src="'img/' + _g1.name + '/Corr2.jpg'">
<<speech _g1.name>>
"It's okay, Jasper. We're so happy now. Josh makes everything feel… right."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Corr2.jpg'">
<<speech _g2.name>>
"We don't have to be afraid anymore. Josh takes care of us."
<</speech>>
<<print _g3.name>> completes the first circle, stepping close.
<img @src="'img/' + _g3.name + '/Corr2.jpg'">
<<speech _g3.name>>
"You always wanted us to be a family. Now we are. Because of him."
<</speech>>
<<print _g4.name>> enters last, calm and steady, taking her place among them.
<img @src="'img/' + _g4.name + '/Corr2.jpg'">
<<speech _g4.name>>
"We're not here to fight you. We're here to make you whole."
<</speech>>
<<speech "Jasper">>
"What… what's going on? You said we needed to talk about the house…"
<</speech>>
The front door creaks open. Josh steps in—hoodie up, rain dripping from the brim, smirk already in place. He kicks the door shut and locks it, eyes never leaving Jasper's face.
<<speech "Josh">>
"Evening, big bro. Nice place you've got here. Real cozy. Your girls invited me—they've been very… persuasive."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> guides him into place while <<print _g2.name>> and <<print _g3.name>> move to either side, lifting his shirt away. <<print _g4.name>> kneels in front, eyes meeting his with heartbreaking tenderness as they strip him bare.
Clothes fall away until all four stand exposed, bodies pressing close in reverent coordination.
Two drop to their knees first, mouths devoted to Josh in slow, tandem worship.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Josh first, sinking down with a quiet breath of relief, hips rolling in deep, loving rhythm.
<video @src="'img/' + _g3.name + '/Josh/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> follows, mounting reverse so Jasper is forced to watch every inch disappear inside her.
<video @src="'img/' + _g4.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> rides last, body arching in manic loyalty until Josh floods her, her surrender complete.
<video @src="'img/' + _g1.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Jasper's body betrays him—hips bucking, breathing ragged—as his girls perform for Josh, their eyes never leaving Jasper's face. The last of his resistance shatters into helpless, aching need.
<<speech "Josh">>
"Good boy. Welcome to the family, Jasper."
<</speech>>
The girls move to stand behind Josh—three perfect, obedient figures, their eyes fixed on their new master. Jasper kneels in perfect, absolute submission.
The rain keeps falling outside. Inside, the house is still. And Jasper—once the protector—kneels in perfect, absolute submission.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The trap is set in the living room of Havenwood Residence—Jasper's supposed sanctuary. It's late afternoon; the house is quiet, the younger kids at after-school activities. The curtains are drawn, the lamp on low. The air carries a faint, sweet scent—Thornfield's trust perfume, now twisted into something heavier, laced with raw, hungry lust.
Jasper comes down the stairs with a tray of tea, expecting his family. He steps into the room and freezes.
<<print _g1.name>> is already there, waiting. She's dressed in delicate lingerie that clings to her skin, her eyes glassy, flushed with devotion to Josh.
<img @src="'img/' + _g1.name + '/Corr2.jpg'">
<<speech _g1.name>>
"It's okay, Jasper. We're so happy now. Josh makes everything feel… right."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Corr2.jpg'">
<<speech _g2.name>>
"We don't have to be afraid anymore. Josh takes care of us."
<</speech>>
<<print _g3.name>> completes the first circle, stepping close.
<img @src="'img/' + _g3.name + '/Corr2.jpg'">
<<speech _g3.name>>
"You always wanted us to be a family. Now we are. Because of him."
<</speech>>
<<print _g4.name>> steps in after, calm and steady.
<img @src="'img/' + _g4.name + '/Corr2.jpg'">
<<speech _g4.name>>
"We're not here to fight you. We're here to make you whole."
<</speech>>
<<print _g5.name>> is last, moving with quiet purpose.
<img @src="'img/' + _g5.name + '/Corr2.jpg'">
<<speech _g5.name>>
"You don't have to carry it alone anymore. Let us carry you."
<</speech>>
<<speech "Jasper">>
"What… what's going on? You said we needed to talk about the house…"
<</speech>>
The front door creaks open. Josh steps in—hoodie up, rain dripping from the brim, smirk already in place. He kicks the door shut and locks it, eyes never leaving Jasper's face.
<<speech "Josh">>
"Evening, big bro. Nice place you've got here. Real cozy. Your girls invited me—they've been very… persuasive."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> reaches him first while <<print _g2.name>> and <<print _g3.name>> move to either side. <<print _g4.name>> kneels in front, eyes meeting his. <<print _g5.name>> stands behind, steady hands on his shoulders, holding him in place as the others strip him bare.
Clothes fall away until all five stand exposed, bodies pressing close in reverent, devoted coordination.
Two drop to their knees first, mouths devoted to Josh in slow, tandem worship.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Josh first, sinking down with a quiet breath of relief.
<video @src="'img/' + _g3.name + '/Josh/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> follows, mounting reverse so Jasper is forced to watch.
<video @src="'img/' + _g4.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g5.name>> rides last, body arching in devotion until Josh floods her.
<video @src="'img/' + _g5.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Jasper's body betrays him—hips bucking, breathing ragged—as his girls perform for Josh, their eyes never leaving Jasper's face. The last of his resistance shatters into helpless, aching need.
<<speech "Josh">>
"Good boy. Welcome to the family, Jasper."
<</speech>>
The girls move to stand behind Josh—three perfect, obedient figures, their eyes fixed on their new master. Jasper kneels in perfect, absolute submission.
The rain keeps falling outside. Inside, the house is still. And Jasper—once the protector—kneels in perfect, absolute submission.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Josh/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'Jasper' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO Josh]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div>
<h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF WILL</h1>
<<silently>>
<<set _mID to "josh">>
<<set _vID to "caldwell">>
<<set _loserKeys to $vices.caldwell.keys>> /* ["anya", "rae", "adriana", "keisha"] */
/* Find all of the loser's keys that the winner has at Stage 3 */
<<set _loserConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _loserKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_loserConquered.includes(c.id))>> <<run _heldByMe.shuffle()>> <<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _loserKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The trap is set in Caldwell's own office—the third-floor sanctum of the philosophy building, where he has broken so many wills. It's after hours; the campus is mostly empty, the only light from his desk lamp and the projector screen he uses for his "training sessions."
Caldwell sits at his desk, projector off, tablet in hand, reviewing a hypnotic pattern he's refined. The door is unlocked—he expects his subject any minute.
<<print _g1.name>> is already there, waiting. She stands in perfect, glassy stillness—devotion to Josh burning behind her eyes.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"You trained us so well, Professor. Now let Josh train you."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"Submit, sir. It feels so good to submit."
<</speech>>
<<print _g3.name>> completes the circle, stepping close, her hand finding his.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"You always wanted us blank and obedient. Now you get to feel it too."
<</speech>>
<<speech "Caldwell">>
"You're late. But punctuality was never your strength."
<</speech>>
The door opens one last time. Josh steps in—hoodie soaked from the rain, smirk already in place. He kicks the door shut and locks it.
<<speech "Josh">>
"Evening, Professor. Nice setup you've got here. Real private. You don't give orders anymore—not in this room."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> takes his hands first, guiding him into place. <<print _g2.name>> and <<print _g3.name>> press close on either side, warm and sure, lifting his shirt away with tender care while their own clothes fall in soft piles.
Clothes discard quietly until all three stand bare, bodies close in devoted coordination.
Two drop to their knees first, mouths devoted to Josh in slow, tandem worship—tongues gliding in perfect sync, eyes occasionally lifting to Caldwell with soft, accepting glances.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Josh first, sinking down with a soft sigh of relief, hips moving in a deep, loving rhythm as she takes him completely.
<video @src="'img/' + _g3.name + '/Josh/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> follows, mounting so Caldwell watches every moment, her movements devoted as Josh finishes deep inside.
<video @src="'img/' + _g1.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> rides last, body arching in manic loyalty until Josh claims her fully.
<video @src="'img/' + _g2.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell's mind fights—but his body betrays him, hips bucking helplessly, a strangled groan tearing from his throat as his own subjects serve another master before his eyes. The breaker of wills becomes the broken.
<<speech "Josh">>
"Now kneel properly. And thank me."
<</speech>>
Caldwell drops forward—forehead to the floor.
The spirals fade from the screen. The room is still. Caldwell—once the breaker of wills—kneels in perfect, absolute submission.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The trap is set in Caldwell's own office—the third-floor sanctum of the philosophy building, where he has broken so many wills. It's after hours; the campus is mostly empty, the only light from his desk lamp and the projector screen he uses for his "training sessions."
Caldwell sits at his desk, tablet in hand, reviewing his notes. The door is unlocked—he expects his subjects any minute.
<<print _g1.name>> is already there, waiting. She stands in perfect, glassy stillness—devotion to Josh burning behind her eyes.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"You trained us so well, Professor. Now let Josh train you."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"Submit, sir. It feels so good to submit."
<</speech>>
<<print _g3.name>> completes the first circle, stepping close.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"You always wanted us blank and obedient. Now you get to feel it too."
<</speech>>
<<print _g4.name>> enters last, calm and steady, taking her place among them.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"We're not here to fight you. We're here to make you whole."
<</speech>>
<<speech "Caldwell">>
"You're late. But punctuality was never your strength."
<</speech>>
The door opens one last time. Josh steps in—hoodie soaked from the rain, smirk already in place. He kicks the door shut and locks it.
<<speech "Josh">>
"Evening, Professor. Nice setup you've got here. Real private. You don't give orders anymore—not in this room."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> guides him into place while <<print _g2.name>> and <<print _g3.name>> move to either side, lifting his shirt away. <<print _g4.name>> kneels in front, eyes meeting his with heartbreaking tenderness as they strip him bare.
Clothes fall away until all four stand exposed, bodies pressing close in reverent coordination.
Two drop to their knees first, mouths devoted to Josh in slow, tandem worship.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Josh first, sinking down with a quiet breath of relief, hips rolling in deep, loving rhythm.
<video @src="'img/' + _g3.name + '/Josh/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> follows, mounting reverse so Caldwell is forced to watch every inch disappear inside her.
<video @src="'img/' + _g4.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> rides last, body arching in manic loyalty until Josh floods her, her surrender complete.
<video @src="'img/' + _g1.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell's mind fights—but his body betrays him, hips bucking helplessly, a strangled groan tearing from his throat as his own subjects serve another master before his eyes. The breaker of wills becomes the broken.
<<speech "Josh">>
"Now kneel properly. And thank me."
<</speech>>
Caldwell drops forward—forehead to the floor.
The spirals fade from the screen. The room is still. Caldwell—once the breaker of wills—kneels in perfect, absolute submission.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The trap is set in Caldwell's own office—the third-floor sanctum of the philosophy building, where he has broken so many wills. It's after hours; the campus is mostly empty, the only light from his desk lamp and the projector screen he uses for his "training sessions."
Caldwell sits at his desk, reviewing his notes. The door is unlocked—he expects his subjects any minute.
<<print _g1.name>> is already there, waiting. She stands in perfect, glassy stillness—devotion to Josh burning behind her eyes.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"You trained us so well, Professor. Now let Josh train you."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"Submit, sir. It feels so good to submit."
<</speech>>
<<print _g3.name>> completes the first circle, stepping close.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"You always wanted us blank and obedient. Now you get to feel it too."
<</speech>>
<<print _g4.name>> steps in after, calm and steady.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"We're not here to fight you. We're here to make you whole."
<</speech>>
<<print _g5.name>> is last, moving with quiet purpose.
<img @src="'img/' + _g5.name + '/Normal.jpg'">
<<speech _g5.name>>
"You don't have to carry it alone anymore. Let us carry you."
<</speech>>
<<speech "Caldwell">>
"You're late. But punctuality was never your strength."
<</speech>>
The door opens one last time. Josh steps in—hoodie soaked from the rain, smirk already in place. He kicks the door shut and locks it.
<<speech "Josh">>
"Evening, Professor. Nice setup you've got here. Real private. You don't give orders anymore—not in this room."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> reaches him first while <<print _g2.name>> and <<print _g3.name>> move to either side. <<print _g4.name>> kneels in front, eyes meeting his. <<print _g5.name>> stands behind, steady hands on his shoulders, holding him in place as the others strip him bare.
Clothes fall away until all five stand exposed, bodies pressing close in reverent, devoted coordination.
Two drop to their knees first, mouths devoted to Josh in slow, tandem worship.
<video @src="'img/' + _g1.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Josh/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Josh first, sinking down with a quiet breath of relief.
<video @src="'img/' + _g3.name + '/Josh/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> follows, mounting reverse so Caldwell is forced to watch.
<video @src="'img/' + _g4.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g5.name>> rides last, body arching in devotion until Josh floods her.
<video @src="'img/' + _g5.name + '/Josh/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell's mind fights—but his body betrays him, hips bucking helplessly, a strangled groan tearing from his throat as his own subjects serve another master before his eyes. The breaker of wills becomes the broken.
<<speech "Josh">>
"Now kneel properly. And thank me."
<</speech>>
Caldwell drops forward—forehead to the floor.
The spirals fade from the screen. The room is still. Caldwell—once the breaker of wills—kneels in perfect, absolute submission.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Josh/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'Caldwell' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO Josh]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF TRUST</h1>
<<silently>>
<<set _mID to "caldwell">>
<<set _vID to "jasper">>
<<set _loserKeys to $vices.jasper.keys>> /* ["casey", "chanel", "carolina", "melody"] */
/* Find all of the loser's keys that the winner has at Stage 3 */
<<set _loserConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _loserKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_loserConquered.includes(c.id))>> <<run _heldByMe.shuffle()>> <<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _loserKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The trap is set in the attic of Havenwood Residence—the one place Jasper has always considered sacred, the heart of his carefully built "family." He thinks it's a quiet evening to check on the girls. He climbs the ladder expecting calm.
The attic is dimly lit by a single lamp and the soft blue glow of a projector screen mounted on the far wall. Jasper pulls himself up and freezes.
<<print _g1.name>> is already there, waiting. She kneels in perfect posture—naked save for a thin black collar, skin glistening, eyes glassy and reverent.
<img @src="'img/' + _g1.name + '/Corr3.jpg'">
<<speech _g1.name>>
"It's okay, Jasper. We're safe now. He makes everything perfect."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Corr3.jpg'">
<<speech _g2.name>>
"You always tried so hard to hold us together. Now let him hold you."
<</speech>>
<<print _g3.name>> completes the circle, stepping close, her hand finding his.
<img @src="'img/' + _g3.name + '/Corr3.jpg'">
<<speech _g3.name>>
"He trained us so well. Now let him train you."
<</speech>>
<<speech "Jasper">>
"What… what is this?"
<</speech>>
The projector flickers on—a slow, spiraling pattern filling the screen, deep blacks and pulsing reds, layered with a calm, commanding voice. Then Caldwell steps out from the shadows, cold and unhurried.
<<speech "Caldwell">>
"Look at you, Jasper. Big strong protector, thinking you could keep these subjects all to yourself. They're mine now. Dripping, begging, broken. And you're next. Obedience is pleasure. Submission is bliss."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> takes his hands first, guiding him into place. <<print _g2.name>> and <<print _g3.name>> press close on either side, warm and sure, lifting his shirt away with tender care while their own clothes fall in soft piles.
Clothes discard quietly until all three stand bare, bodies close in devoted coordination.
Two drop to their knees first, mouths devoted to Caldwell in slow, tandem worship—tongues gliding in perfect sync, eyes occasionally lifting to Jasper with soft, accepting glances.
<video @src="'img/' + _g1.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Caldwell first, sinking down with a soft sigh of relief, hips moving in a deep, loving rhythm as she takes him completely.
<video @src="'img/' + _g3.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> follows, mounting so Jasper watches every moment, her movements devoted as Caldwell finishes deep inside.
<video @src="'img/' + _g1.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> rides last, body arching in manic loyalty until Caldwell claims her fully.
<video @src="'img/' + _g2.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then, to finish him, Caldwell gives Jasper a taste of what he built. <<print _g1.name>> — the first of his family, the girl whose trust he won so gently — crosses to Jasper and takes him in her mouth with the slow, patient warmth he taught her, eyes never leaving his, while <<print _g3.name>> holds his head and makes him watch his own tenderness turned into a leash. His body betrays him under her devotion — and that, not the spiral, is the blow his will cannot survive.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Jasper's eyes lock on the spirals. He tries to look away—the pull is too strong. His knees buckle; he drops to the floor, half resistance, half surrender, as his family kneels in perfect rows before a new master.
<<speech "Caldwell">>
"Good boy. Now kneel properly. And thank me."
<</speech>>
Jasper drops forward—forehead to the floor.
The spirals fade from the screen. The room is still. Jasper—once the protector—kneels in perfect, absolute submission.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The trap is set in the attic of Havenwood Residence—the one place Jasper has always considered sacred, the heart of his carefully built "family." He thinks it's a quiet evening to check on the girls. He climbs the ladder expecting calm.
The attic is dimly lit by the projector's glow. Jasper pulls himself up and freezes.
<<print _g1.name>> is already there, waiting. She kneels in perfect posture—naked save for a thin black collar, skin glistening, eyes glassy and reverent.
<img @src="'img/' + _g1.name + '/Corr3.jpg'">
<<speech _g1.name>>
"It's okay, Jasper. We're safe now. He makes everything perfect."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Corr3.jpg'">
<<speech _g2.name>>
"You always tried so hard to hold us together. Now let him hold you."
<</speech>>
<<print _g3.name>> completes the first circle, stepping close.
<img @src="'img/' + _g3.name + '/Corr3.jpg'">
<<speech _g3.name>>
"He trained us so well. Now let him train you."
<</speech>>
<<print _g4.name>> enters last, calm and steady, taking her place among them.
<img @src="'img/' + _g4.name + '/Corr3.jpg'">
<<speech _g4.name>>
"We're not here to fight you. We're here to make you whole."
<</speech>>
<<speech "Jasper">>
"What… what is this?"
<</speech>>
The projector flickers on—a slow, spiraling pattern filling the screen, deep blacks and pulsing reds, layered with a calm, commanding voice. Then Caldwell steps out from the shadows, cold and unhurried.
<<speech "Caldwell">>
"Look at you, Jasper. Big strong protector, thinking you could keep these subjects all to yourself. They're mine now. Dripping, begging, broken. And you're next. Obedience is pleasure. Submission is bliss."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> guides him into place while <<print _g2.name>> and <<print _g3.name>> move to either side, lifting his shirt away. <<print _g4.name>> kneels in front, eyes meeting his with heartbreaking tenderness as they strip him bare.
Clothes fall away until all four stand exposed, bodies pressing close in reverent coordination.
Two drop to their knees first, mouths devoted to Caldwell in slow, tandem worship.
<video @src="'img/' + _g1.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Caldwell first, sinking down with a quiet breath of relief, hips rolling in deep, loving rhythm.
<video @src="'img/' + _g3.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> follows, mounting reverse so Jasper is forced to watch every inch disappear inside her.
<video @src="'img/' + _g4.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> rides last, body arching in manic loyalty until Caldwell floods her, her surrender complete.
<video @src="'img/' + _g1.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then, to finish him, Caldwell gives Jasper a taste of what he built. <<print _g1.name>> — the first of his family, the girl whose trust he won so gently — crosses to Jasper and takes him in her mouth with the slow, patient warmth he taught her, eyes never leaving his, while <<print _g4.name>> holds his head and makes him watch his own tenderness turned into a leash. His body betrays him under her devotion — and that, not the spiral, is the blow his will cannot survive.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Jasper's eyes lock on the spirals. He tries to look away—the pull is too strong. His knees buckle; he drops to the floor, half resistance, half surrender, as his family kneels in perfect rows before a new master.
<<speech "Caldwell">>
"Good boy. Now kneel properly. And thank me."
<</speech>>
Jasper drops forward—forehead to the floor.
The spirals fade from the screen. The room is still. Jasper—once the protector—kneels in perfect, absolute submission.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The trap is set in the attic of Havenwood Residence—the one place Jasper has always considered sacred, the heart of his carefully built "family." He thinks it's a quiet evening to check on the girls. He climbs the ladder expecting calm.
The attic is dimly lit by the projector's glow. Jasper pulls himself up and freezes.
<<print _g1.name>> is already there, waiting. She kneels in perfect posture—naked save for a thin black collar, skin glistening, eyes glassy and reverent.
<img @src="'img/' + _g1.name + '/Corr3.jpg'">
<<speech _g1.name>>
"It's okay, Jasper. We're safe now. He makes everything perfect."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Corr3.jpg'">
<<speech _g2.name>>
"You always tried so hard to hold us together. Now let him hold you."
<</speech>>
<<print _g3.name>> completes the first circle, stepping close.
<img @src="'img/' + _g3.name + '/Corr3.jpg'">
<<speech _g3.name>>
"He trained us so well. Now let him train you."
<</speech>>
<<print _g4.name>> steps in after, calm and steady.
<img @src="'img/' + _g4.name + '/Corr3.jpg'">
<<speech _g4.name>>
"We're not here to fight you. We're here to make you whole."
<</speech>>
<<print _g5.name>> is last, moving with quiet purpose.
<img @src="'img/' + _g5.name + '/Corr3.jpg'">
<<speech _g5.name>>
"You don't have to carry it alone anymore. Let us carry you."
<</speech>>
<<speech "Jasper">>
"What… what is this?"
<</speech>>
The projector flickers on—a slow, spiraling pattern filling the screen, deep blacks and pulsing reds, layered with a calm, commanding voice. Then Caldwell steps out from the shadows, cold and unhurried.
<<speech "Caldwell">>
"Look at you, Jasper. Big strong protector, thinking you could keep these subjects all to yourself. They're mine now. Dripping, begging, broken. And you're next. Obedience is pleasure. Submission is bliss."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> reaches him first while <<print _g2.name>> and <<print _g3.name>> move to either side. <<print _g4.name>> kneels in front, eyes meeting his. <<print _g5.name>> stands behind, steady hands on his shoulders, holding him in place as the others strip him bare.
Clothes fall away until all five stand exposed, bodies pressing close in reverent, devoted coordination.
Two drop to their knees first, mouths devoted to Caldwell in slow, tandem worship.
<video @src="'img/' + _g1.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Caldwell first, sinking down with a quiet breath of relief.
<video @src="'img/' + _g3.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> follows, mounting reverse so Jasper is forced to watch.
<video @src="'img/' + _g4.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g5.name>> rides last, body arching in devotion until Caldwell floods her.
<video @src="'img/' + _g5.name + '/Caldwell/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then, to finish him, Caldwell gives Jasper a taste of what he built. <<print _g1.name>> — the first of his family, the girl whose trust he won so gently — crosses to Jasper and takes him in her mouth with the slow, patient warmth he taught her, eyes never leaving his.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> follows, giving herself to him open and unhurried, the way he always loved her — his gentleness poured back into him until he cannot tell the trap from the home it imitates.
<video @src="'img/' + _g2.name + '/Jasper/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
And <<print _g3.name>> worships him last with the same patient mouth, while <<print _g5.name>> holds his head and makes him watch his own tenderness turned into a leash. His body betrays him under their devotion — and that, not the spiral, is the blow his will cannot survive.
<video @src="'img/' + _g3.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Jasper's eyes lock on the spirals. He tries to look away—the pull is too strong. His knees buckle; he drops to the floor, half resistance, half surrender, as his family kneels in perfect rows before a new master.
<<speech "Caldwell">>
"Good boy. Now kneel properly. And thank me."
<</speech>>
Jasper drops forward—forehead to the floor.
The spirals fade from the screen. The room is still. Jasper—once the protector—kneels in perfect, absolute submission.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Caldwell/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'Jasper' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO Caldwell]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF WILL</h1>
<<silently>>
<<set _mID to "jasper">>
<<set _vID to "caldwell">>
<<set _loserKeys to $vices.caldwell.keys>> /* ["anya", "rae", "adriana", "keisha"] */
/* Find all of the loser's keys that the winner has at Stage 3 */
<<set _loserConquered to $roster.filter(c => c.stages[_vID] >= 3).map(c => c.id)>>
<<set _heldByMe to $roster.filter(c => _loserKeys.includes(c.id) && c.owner === _mID && c.stages[_mID] >= 3 && !_loserConquered.includes(c.id))>> <<run _heldByMe.shuffle()>> <<set _count to _heldByMe.length>>
/* Identify which keys are still "free" or held by others */
<<set _missing to _loserKeys.filter(id => !_heldByMe.some(c => c.id === id))>>
<<set _missingNames to _missing.map(id => $roster.find(r => r.id === id).name)>>
/* Select the primary participants for the text (first 3 shuffled) */
<<set _g1 to _heldByMe[0]>>
<<set _g2 to _heldByMe[1]>>
<<set _g3 to _heldByMe[2]>>
<</silently>>
<div class="narrative">
<<if _count is 3>>
<!-- BRANCH 1: 3 KEYS -->
The trap unfolds in Caldwell's own office—the third-floor sanctum of the philosophy building, after hours. The blinds are drawn tight, the door locked from the inside. The only light comes from the desk lamp and the large projector screen on the wall, currently dark. A faint, comforting scent lingers—Thornfield's trust perfume, diffused subtly through the air vent.
Caldwell had scheduled "detention" for one of his favorite subjects and "requested" Jasper's presence to "assist with supervision." Jasper, ever dutiful, arrived without question.
<<print _g1.name>> is already there, waiting. She moves with quiet devotion—eyes soft, adoring, fixed on Jasper.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"It's okay, Professor. Just relax. We're all safe now."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"No more experiments. No more breaking people. Just obedience. Just peace."
<</speech>>
<<print _g3.name>> completes the circle, stepping close, her hand finding his.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"You trained me to obey, Professor. Now obey him."
<</speech>>
<<speech "Caldwell">>
"You're punctual, Jasper. Good. She's been… uncooperative. I need you to help her focus."
<</speech>>
Jasper sets the mug of chamomile tea on the desk—steam rising in slow curls, carrying a subtle honey-cedar scent. Caldwell sips without suspicion. The warmth spreads through him, slow and deep; his shoulders ease, his breathing slows, his eyes grow heavy.
<<speech "Jasper">>
"You always wanted control, Professor. You wanted them to obey without question. Now you'll understand what that really feels like. You don't have to fight anymore. You can just… belong."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> takes his hands first, guiding him into place. <<print _g2.name>> and <<print _g3.name>> press close on either side, warm and sure, lifting his shirt away with tender care while their own clothes fall in soft piles.
Clothes discard quietly until all three stand bare, bodies close in devoted coordination.
Two drop to their knees first, mouths devoted to Jasper in slow, tandem worship—tongues gliding in perfect sync, eyes occasionally lifting to Caldwell with soft, accepting glances.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Jasper first, sinking down with a soft sigh of relief, hips moving in a deep, loving rhythm as she takes him completely.
<video @src="'img/' + _g3.name + '/Jasper/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> follows, mounting so Caldwell watches every moment, her movements devoted as Jasper finishes deep inside.
<video @src="'img/' + _g1.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> rides last, body arching in manic loyalty until Jasper claims her fully.
<video @src="'img/' + _g2.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then his own training comes home. <<print _g1.name>> kneels before Caldwell and takes him in her mouth with the exacting, worshipful precision he drilled into her — the technique he designed, aimed back at its architect — while <<print _g3.name>> tilts his chin up so he cannot look away from how perfectly she performs. No spiral could break him this deeply; only proof that he was always this good at breaking.
<video @src="'img/' + _g1.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell's mind drowns in the warmth—his will softening like wax, his body betraying him under reverent hands. The breaker of wills tips forward, eyes glazed, whispering his own surrender.
<<speech "Jasper">>
"Welcome home, Professor. You don't have to carry the weight anymore."
<</speech>>
Caldwell slides off the chair—knees hitting the floor without resistance.
The scent lingers. The room is still. Caldwell—once the breaker of wills—kneels in perfect, absolute submission.
<<elseif _count is 4>>
<!-- BRANCH 2: 4 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<</silently>>
The trap unfolds in Caldwell's own office—the third-floor sanctum of the philosophy building, after hours. The blinds are drawn tight, the door locked from the inside. The only light comes from the desk lamp and the large projector screen on the wall, currently dark. A faint, comforting scent lingers—Thornfield's trust perfume, diffused subtly through the air vent.
Caldwell had scheduled a late "remediation session" and requested Jasper's help. Jasper arrived without question.
<<print _g1.name>> is already there, waiting. She moves with quiet devotion—eyes soft, adoring, fixed on Jasper.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"It's okay, Professor. Just relax. We're all safe now."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"No more experiments. No more breaking people. Just obedience. Just peace."
<</speech>>
<<print _g3.name>> completes the first circle, stepping close.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"You trained me to obey, Professor. Now obey him."
<</speech>>
<<print _g4.name>> enters last, calm and steady, taking her place among them.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"We're not here to fight you. We're here to make you whole."
<</speech>>
<<speech "Caldwell">>
"You're punctual, Jasper. Good. She's been… uncooperative. I need you to help her focus."
<</speech>>
Jasper sets the mug of chamomile tea on the desk—steam rising in slow curls, carrying a subtle honey-cedar scent. Caldwell sips without suspicion. The warmth spreads through him, slow and deep; his shoulders ease, his breathing slows, his eyes grow heavy.
<<speech "Jasper">>
"You always wanted control, Professor. You wanted them to obey without question. Now you'll understand what that really feels like. You don't have to fight anymore. You can just… belong."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> guides him into place while <<print _g2.name>> and <<print _g3.name>> move to either side, lifting his shirt away. <<print _g4.name>> kneels in front, eyes meeting his with heartbreaking tenderness as they strip him bare.
Clothes fall away until all four stand exposed, bodies pressing close in reverent coordination.
Two drop to their knees first, mouths devoted to Jasper in slow, tandem worship.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Jasper first, sinking down with a quiet breath of relief, hips rolling in deep, loving rhythm.
<video @src="'img/' + _g3.name + '/Jasper/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> follows, mounting reverse so Caldwell is forced to watch every inch disappear inside her.
<video @src="'img/' + _g4.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g1.name>> rides last, body arching in manic loyalty until Jasper floods her, her surrender complete.
<video @src="'img/' + _g1.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then his own training comes home. <<print _g1.name>> kneels before Caldwell and takes him in her mouth with the exacting, worshipful precision he drilled into her — the technique he designed, aimed back at its architect — while <<print _g4.name>> tilts his chin up so he cannot look away from how perfectly she performs. No spiral could break him this deeply; only proof that he was always this good at breaking.
<video @src="'img/' + _g1.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell's mind drowns in the warmth—his will softening like wax, his body betraying him under reverent hands. The breaker of wills tips forward, eyes glazed, whispering his own surrender.
<<speech "Jasper">>
"Welcome home, Professor. You don't have to carry the weight anymore."
<</speech>>
Caldwell slides off the chair—knees hitting the floor without resistance.
The scent lingers. The room is still. Caldwell—once the breaker of wills—kneels in perfect, absolute submission.
<<elseif _count gte 5>>
<!-- BRANCH 3: 5 KEYS -->
<<silently>>
<<set _g4 to _heldByMe[3]>>
<<set _g5 to _heldByMe[4]>>
<</silently>>
The trap unfolds in Caldwell's own office—the third-floor sanctum of the philosophy building, after hours. The blinds are drawn tight, the door locked from the inside. The only light comes from the desk lamp and the large projector screen on the wall, currently dark. A faint, comforting scent lingers—Thornfield's trust perfume, diffused subtly through the air vent.
Caldwell had scheduled a late "remediation session" and requested Jasper's help. Jasper arrived without question.
<<print _g1.name>> is already there, waiting. She moves with quiet devotion—eyes soft, adoring, fixed on Jasper.
<img @src="'img/' + _g1.name + '/Normal.jpg'">
<<speech _g1.name>>
"It's okay, Professor. Just relax. We're all safe now."
<</speech>>
<<print _g2.name>> kneels beside her, eyes soft and glassy.
<img @src="'img/' + _g2.name + '/Normal.jpg'">
<<speech _g2.name>>
"No more experiments. No more breaking people. Just obedience. Just peace."
<</speech>>
<<print _g3.name>> completes the first circle, stepping close.
<img @src="'img/' + _g3.name + '/Normal.jpg'">
<<speech _g3.name>>
"You trained me to obey, Professor. Now obey him."
<</speech>>
<<print _g4.name>> steps in after, calm and steady.
<img @src="'img/' + _g4.name + '/Normal.jpg'">
<<speech _g4.name>>
"We're not here to fight you. We're here to make you whole."
<</speech>>
<<print _g5.name>> is last, moving with quiet purpose.
<img @src="'img/' + _g5.name + '/Normal.jpg'">
<<speech _g5.name>>
"You don't have to carry it alone anymore. Let us carry you."
<</speech>>
<<speech "Caldwell">>
"You're punctual, Jasper. Good. She's been… uncooperative. I need you to help her focus."
<</speech>>
Jasper sets the mug of chamomile tea on the desk—steam rising in slow curls, carrying a subtle honey-cedar scent. Caldwell sips without suspicion. The warmth spreads through him, slow and deep; his shoulders ease, his breathing slows, his eyes grow heavy.
<<speech "Jasper">>
"You always wanted control, Professor. You wanted them to obey without question. Now you'll understand what that really feels like. You don't have to fight anymore. You can just… belong."
<</speech>>
They converge—gentle, inevitable.
<<print _g1.name>> reaches him first while <<print _g2.name>> and <<print _g3.name>> move to either side. <<print _g4.name>> kneels in front, eyes meeting his. <<print _g5.name>> stands behind, steady hands on his shoulders, holding him in place as the others strip him bare.
Clothes fall away until all five stand exposed, bodies pressing close in reverent, devoted coordination.
Two drop to their knees first, mouths devoted to Jasper in slow, tandem worship.
<video @src="'img/' + _g1.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<video @src="'img/' + _g2.name + '/Jasper/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then the full claiming begins.
<<print _g3.name>> straddles Jasper first, sinking down with a quiet breath of relief.
<video @src="'img/' + _g3.name + '/Jasper/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g4.name>> follows, mounting reverse so Caldwell is forced to watch.
<video @src="'img/' + _g4.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g5.name>> rides last, body arching in devotion until Jasper floods her.
<video @src="'img/' + _g5.name + '/Jasper/3-2.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Then his own training comes home. <<print _g1.name>> kneels before Caldwell and takes him in her mouth with the exacting, worshipful precision he drilled into her — the technique he designed, aimed back at its architect.
<video @src="'img/' + _g1.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
<<print _g2.name>> follows, opening for him in the measured, clinical rhythm he programmed — his own protocol recited back to him by a body he rewrote.
<video @src="'img/' + _g2.name + '/Caldwell/3-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
And <<print _g3.name>> worships him last with the same perfect mouth, while <<print _g5.name>> tilts his chin up so he cannot look away from how beautifully they all perform. No spiral could break him this deeply; only proof that he was always this good at breaking.
<video @src="'img/' + _g3.name + '/Caldwell/2-1.mp4'" width="1000" height="480" autoplay controls loop muted playsinline></video>
Caldwell's mind drowns in the warmth—his will softening like wax, his body betraying him under reverent hands. The breaker of wills tips forward, eyes glazed, whispering his own surrender.
<<speech "Jasper">>
"Welcome home, Professor. You don't have to carry the weight anymore."
<</speech>>
Caldwell slides off the chair—knees hitting the floor without resistance.
The scent lingers. The room is still. Caldwell—once the breaker of wills—kneels in perfect, absolute submission.
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<div class="video-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<for _girl range _heldByMe>>
<div style="width: 45%; min-width: 320px; text-align: center;">
<h4 style="color: #00ffcc; margin-bottom: 5px;"><<print _girl.name>> (Conquered)</h4>
<video @src="'img/' + _girl.name + '/Jasper/3-1.mp4'" autoplay controls loop muted playsinline style="width: 100%; border: 2px solid #9c27b0; border-radius: 8px;"></video>
</div>
<</for>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 10px; border: 1px solid #f00; text-align: center; margin-top: 30px;">
[CRITICAL ALERT: USER 'Caldwell' ELIMINATED]<br>
[ALL SUBJECTS TRANSFERRED TO Jasper]<br>
[CONQUERED KEYS: <<print _count>>/4]
</div>
<div style="text-align: center; margin-top: 30px; padding-bottom: 50px;">
[[Witness the Rite of Passage|RiteOfPassage]]
</div><h1 style="text-align:center; color: #ff00ff;">RITE OF PASSAGE</h1>
<<silently>>
<<set _winnerID to $activeTurn>>
<<set _loserID to $targetMaster.id>>
/* Transfer loser's enslaved masters to the winner */
<<if $vices[_loserID].slaves.length gt 0>>
<<set _inheritedSlaves to []>>
<<for _sID range $vices[_loserID].slaves>>
<<run $vices[_winnerID].slaves.pushUnique(_sID)>>
<<set $vices[_sID].master to _winnerID>>
<<run _inheritedSlaves.push(_sID)>>
<</for>>
<<set $vices[_loserID].slaves to []>>
<<else>>
<<set _inheritedSlaves to []>>
<</if>>
<</silently>>
<div class="narrative" style="text-align: center; margin-bottom: 30px;">
<p>A Master has fallen. The threads of their control have snapped. The subjects fully synchronized with the fallen Master feel the new, superior resonance of <strong><<print $vices[$activeTurn].name>></strong>. Their past is deleted.</p>
</div>
<<if _inheritedSlaves.length gt 0>>
<div class="narrative" style="text-align: center; margin-bottom: 30px; border: 1px solid #ff00ff; padding: 15px; border-radius: 10px;">
<p style="color: #ff00ff;"><strong>CHAIN OF DOMINANCE</strong></p>
<p><<print $vices[_loserID].name>>'s enslaved Masters now kneel before <strong><<print $vices[_winnerID].name>></strong>:</p>
<<for _sID range _inheritedSlaves>>
<span style="color: #ff66cc; font-weight: bold; margin: 0 10px;"><<print $vices[_sID].name>></span>
<</for>>
</div>
<</if>>
<div class="transfer-grid" style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<<if $transferredNPCs.length === 0>>
<p>No subjects were fully synchronized enough to survive the transition.</p>
<<else>>
<<for _girl range $transferredNPCs>>
<div class="npc-card conquered-card" style="width: 220px; text-align: center; background: #000; padding: 10px; border-radius: 12px;">
<img @src="'img/' + _girl.name + '/PortraitCorr.jpg'" style="width: 100%; border-radius: 8px;">
<h3 style="color: #ff00ff;"><<print _girl.name>></h3>
<p style="color: #888; font-size: 0.8em;">TRANSFERRED</p>
</div>
<</for>>
<</if>>
</div>
<<if $transferredNPCs.length gt 0>>
<hr style="margin: 40px 0; border-color: #333;">
<h2 style="text-align: center; color: #ff66cc;">SUBMISSION FEED</h2>
<<for _girl range $transferredNPCs>>
<div style="margin-bottom: 60px; border-bottom: 1px solid #333; padding-bottom: 30px;">
<h3 style="text-align: center; color: #fff;"><<print _girl.name>>: Re-Synchronized</h3>
<<videoWall _girl.name 3 _winnerID>>
</div>
<</for>>
<</if>>
<div style="text-align: center; margin-top: 50px; padding-bottom: 50px;">
[[Establish the New Order|EndTurnLogic]]
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Eva/Normal.jpg">
Jasper lived at Havenwood. Eva knew him because Nathan had introduced them on campus, and because Jasper was recruiting volunteers for a Havenwood mutual-aid drive. Eva understood student problems and had no patience for committees that turned practical help into a branding exercise, so Jasper asked her to review the plan before he presented it.
They met in a quiet student-union room. Eva wore a light-grey cropped T-shirt and faded denim cutoffs, long highlighted hair over one shoulder as she crossed out half the volunteer form.
<<speech "Jasper">> "You deleted the mission statement." <</speech>>
<<speech "Eva">> "It says 'leveraging peer-centered resilience pathways.'" <</speech>> She tapped the page. <<speech "Eva">> "Nobody who needs groceries should have to survive that sentence first." <</speech>>
<<speech "Jasper">> "What would you write?" <</speech>>
<<speech "Eva">> "Tell us what you need. Tell us what you can offer. No speeches required." <</speech>>
Jasper watched her rewrite the form in three lines. Eva occupied no official authority, but people trusted her because she listened, remembered, and acted. She was fiercely loyal to Nathan, yet the quality Jasper wanted was broader than that friendship: kindness with teeth, her loyalty.
She would fit at Havenwood's table.
Jasper poured tea from a thermos. Thornfield's essence rose with the steam: chamomile, leather, and rain striking warm pavement.
Eva accepted the cup while they worked.
<<speech "Eva">> "Nathan said you make dangerous tea." <</speech>>
<<speech "Jasper">> "He meant strong." <</speech>>
<<speech "Eva">> "He said dangerous." <</speech>> She drank anyway. <<speech "Eva">> "His standards are low. He once called vending-machine coffee 'surprisingly complete.'" <</speech>>
The conversation moved easily from Nathan to the drive, then away from Nathan entirely. Jasper described Havenwood's adult former residents returning for dinner, the repair fund, and the open chair kept for anyone who needed to come back without explaining why.
<<speech "Eva">> "You make it sound less like a program and more like a family." <</speech>>
<<speech "Jasper">> "That's what it is." <</speech>>
<<speech "Eva">> "And what do you want from me?" <</speech>>
<<speech "Jasper">> "Come to the volunteer meeting. Tell us when we're making things harder than they need to be." <</speech>>
The essence settled beneath the invitation. Eva felt seen for something independent of protecting Nathan. Jasper wanted her judgment, her humor, and her presence in a house she had never needed as an excuse to visit.
They finished the form. Eva left the student union and went home.
The rain-warm scent followed in her clothes and hair.
At her apartment, Eva changed for an evening she no longer wanted to attend. She chose a black lace bra with geometric white stitching and a matching thong. Near the large multi-pane window, she caught her reflection and thought about Jasper watching her over the rim of his cup.
She propped her phone against the sill and recorded herself.
Eva cupped her full breasts through the lace, adjusted the straps, and trailed one dark-polished hand down her toned stomach to the dangling navel piercing. Her hips angled toward the camera while her expression moved between watching herself and making soft eye contact with the lens.
<video src="img/Eva/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She sent the video to Jasper.
The message showed as delivered. Eva stared at the screen, appalled by the decision and soothed by the certainty that Jasper would not expose her.
His reply appeared: *You look beautiful. You don't have to send me anything else.*
The restraint made her want to.
Eva carried the phone into the bright bedroom, removed the black lace, and recorded a second video completely nude. She sat on the white sheets with her legs open, slid two fingers along her outer lips, parted them, and rubbed slow circles over her clit while her other hand cupped a breast. She lowered onto her back, continued touching herself, then brought her wet fingers to her lips and tasted them without looking away from the camera.
<video src="img/Eva/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She sent that video too.
Clarity returned slowly after the orgasm.
Eva typed *Delete those* and waited.
Jasper replied: *If that's what you want. They're safe with me until you decide.*
She should have repeated the instruction. Instead Eva put the phone face down and wondered why his promise felt better than deletion.
<<elseif _s is 2>>
<img src="img/Eva/Corr2.jpg">
Eva attended the Havenwood volunteer meeting to confront Jasper and retrieve the videos. She came as one of the people shaping the project, not as Nathan's guest—and because Jasper's tea had altered the way she thought about him.
She wore ordinary clothes over the same black lace bra and thong. Eva had chosen the set unconsciously, noticed only after leaving home, and become angrier with every step toward Havenwood.
The meeting itself made the anger inconvenient. Chanel wanted her opinion about the adult-volunteer schedule. Carolina showed her the simplified request form already in use. Casey disagreed with Eva about the poster design before introductions were finished. Jasper listened when Eva pointed out that the evening transport plan assumed everyone owned a car.
Nobody treated her as Nathan's representative. Nathan was not there and was not expected.
Afterward, Eva found Jasper in a bright guest bedroom with white curtains.
<<speech "Eva">> "Show me your phone." <</speech>>
He handed it over unlocked. The two videos remained only in their private conversation.
<<speech "Eva">> "Your tea does something." <</speech>>
<<speech "Jasper">> "It helps people relax." <</speech>>
<<speech "Eva">> "I went home, filmed myself in lingerie, sent it to you, stripped, filmed myself masturbating, and sent that too." <</speech>> She held up the phone. <<speech "Eva">> "That deserves a complete ingredient list." <</speech>>
Jasper did not answer directly.
<<speech "Jasper">> "Delete them." <</speech>>
Eva's thumb hovered over the screen.
The black lace beneath her clothes carried a diluted trace of the same essence. Leather, chamomile, and rain warmed against her skin.
<<speech "Eva">> "Why did I wear the set again?" <</speech>>
<<speech "Jasper">> "Why did you still come after you decided the tea was dangerous?" <</speech>>
<<speech "Eva">> "Because the transport plan was bad and somebody had to say it." <</speech>>
<<speech "Jasper">> "Exactly." <</speech>> He sat near the window rather than approaching her. <<speech "Jasper">> "You came because Havenwood matters to you already. The rest is about me." <</speech>>
Eva remembered the meeting and the satisfaction of seeing a form become useful. Jasper was not asking her to stop protecting Nathan or to borrow Nathan's place in the house. He wanted Eva's own place beside him.
The essence made that invitation impossible to separate from desire.
Eva returned Jasper's phone without deleting the clips. She removed her outer clothes and lay on her stomach across the white bed in the black lace, rounded ass lifted and ombre hair spilling forward. Rising onto her elbows, she wrapped one hand around his cock and took him into her mouth. Her eyes looked upward while her lips and tongue worked the length, cheeks hollowing. She pulled back to lick the head and took him deeper again.
<video src="img/Eva/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
In the same soft light, Eva's slightly damp hair fell across one cheek as she opened wide and extended her tongue. Jasper moved his cock across it and past her lips. Thin strings of saliva stretched and broke while she kept her eyes raised and worked in a steady rhythm.
<video src="img/Eva/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Eva pulled away and wiped her chin.
<<speech "Eva">> "I came here to delete two videos." <</speech>>
<<speech "Jasper">> "I know." <</speech>>
<<speech "Eva">> "Now I am half-naked in a guest room, and somehow I feel calmer." <</speech>> She looked toward his phone. <<speech "Eva">> "That is not normal trust." <</speech>>
<<speech "Jasper">> "Do you want to leave?" <</speech>>
Eva considered the meeting room and the people downstairs.
<<speech "Eva">> "I want to know why staying feels this good." <</speech>>
She remained uncertain about Jasper. She went downstairs instead of going home.
<<elseif _s is 3>>
<img src="img/Eva/Corr3.jpg">
Eva found a place card with her name at the Havenwood table. Nobody made a ceremony of it. Her mug appeared in the cupboard; her opinion was requested during adult-volunteer meetings; a key was offered because she was often the last person leaving.
Jasper waited in the same bright guest bedroom while Eva held the key in one hand and his phone in the other.
<<speech "Eva">> "The videos are still here." <</speech>>
<<speech "Jasper">> "You never deleted them." <</speech>>
<<speech "Eva">> "You know why I couldn't." <</speech>>
The room carried the essence. Leather, chamomile, and rain lived in the white bedding and curtains.
<<speech "Eva">> "You've been influencing me since the student union." <</speech>>
Jasper did not offer the confession he reserved for Melody.
<<speech "Jasper">> "I wanted you to see the place you could have here." <</speech>>
<<speech "Eva">> "You could have trusted me to choose it." <</speech>>
<<speech "Jasper">> "I trust you with the family." <</speech>> He stepped closer. <<speech "Jasper">> "I don't trust the world not to pull loyal people in separate directions until nobody is left." <</speech>>
Eva recognized the manipulation. She also recognized every real reason Havenwood had become important to her: people who acted on suggestions, the noisy table, the fact that former residents returned without appointments, and Jasper's refusal to let useful people drift to the edge.
She placed the key and phone on the dresser.
<<speech "Eva">> "If I stay, it cannot only mean being useful." <</speech>>
<<speech "Jasper">> "Then stay when nobody needs anything." <</speech>>
Eva kissed him.
On the white bed, she lay on her stomach with her upper body turned slightly toward him, hoop earrings catching the light. Completely nude, breasts pressed into the mattress and back arched, she took Jasper from behind in a deep steady rhythm. Her mouth opened in alternating smiles and gasps; she glanced over her shoulder while her body rocked forward.
<video src="img/Eva/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper stopped with one hand at her hip.
<<speech "Jasper">> "Who are you here for?" <</speech>>
The answer belonged entirely to Eva now. Nathan had introduced them, but Eva's connection to Jasper and Havenwood no longer depended on him.
The scent settled completely.
<<speech "Eva">> "Myself." <</speech>> She reached back for Jasper's hand. <<speech "Eva">> "And all of you. Nathan will always be my oldest friend, but this place is mine without him." <</speech>>
<<speech "Jasper">> "And me?" <</speech>>
<<speech "Eva">> "You're the reason I want the key." <</speech>>
Eva shifted directly into the second clip without changing clothes or rooms. Still fully nude on the same white bed, she moved on top in a side-leaning reverse position. Her long highlighted hair cascaded over one shoulder; one hand rested on her ass cheek while she rolled her hips and took Jasper deep. She smiled widely through soft laughter and moans as her rounded ass rose and fell.
<video src="img/Eva/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Eva kept the key. The videos remained in their private conversation because deleting them no longer felt like reclaiming anything she wanted back.
She remained fiercely loyal to Nathan in his separate life, but Havenwood did not belong to Nathan and neither did Eva's place there. She defended the house in student meetings, translated campus rumors before they became problems, and brought adult friends to dinners where nobody was pressured to explain why they stayed.
Jasper trusted her with the front door and the vulnerable people behind it. Eva trusted his judgment about who should be welcomed closer. The essence had not made her kindness false; it had ensured that Jasper and his family became its permanent center.
Visitors saw Eva join Havenwood through her own work and relationships. Only Jasper knew what had been in the student-union tea—and what outfit she wore when she sent the first proof that it was working.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF THE PROFESSOR</h1>
<<silently>>
/* The girls that actually drove the elimination: the loser's Main Keys and
Spares the winner held at Stage 3 when the fall happened. Girls gained
through the elimination transfer ($transferredNPCs) are spoils of
victory, not instruments — they are excluded. */
<<set _bkWinner to ($vices.caldwell.eliminatedBy || $activeTurn)>>
<<set _bkUsed to []>>
<<for _bkID range $vices.caldwell.keys>>
<<set _bkNPC to $roster.find(c => c.id === _bkID)>>
<<if _bkNPC and $vices[_bkWinner] and _bkNPC.owner === _bkWinner and _bkNPC.stages[_bkWinner] gte 3 and !$transferredNPCs.some(t => t.id === _bkNPC.id)>>
<<run _bkUsed.push(_bkNPC.name + " (Main Key)")>>
<</if>>
<</for>>
<<for _bkID range $vices.caldwell.backups>>
<<set _bkNPC to $roster.find(c => c.id === _bkID)>>
<<if _bkNPC and $vices[_bkWinner] and _bkNPC.owner === _bkWinner and _bkNPC.stages[_bkWinner] gte 3 and !$transferredNPCs.some(t => t.id === _bkNPC.id)>>
<<run _bkUsed.push(_bkNPC.name + " (Spare)")>>
<</if>>
<</for>>
<</silently>>
<div class="narrative" style="line-height: 1.6; font-style: italic;">
<p>Dr. Caldwell built an empire of control on cold logic and hidden cameras.
He never imagined the collapse would come from the edges — from the "secondary" girls he dismissed as unimportant.
They were never the experiment.
They were the fault line.</p>
<<if $activeTurn is "nathan">>
<h3 style="color: #ffcc00;">Conquered by Nathan — The Power of Love</h3>
<p>Nathan didn’t need to break Caldwell’s network with force.
He just loved the backups until they forgot Caldwell ever existed.
The overlooked ones — the peripheral girls — now follow Nathan like he’s the only light left in their world.
Caldwell’s screens show nothing but empty rooms.</p>
<<speech "Nathan">>"You treated them like numbers, Marcus.
But they’re people.
They chose me because I actually care.
Your whole system is gone now.
They’re with me." <</speech>>
<<elseif $activeTurn is "josh">>
<h3 style="color: #ff6600;">Conquered by Josh — The Power of Lust</h3>
<p>Josh didn’t argue with Caldwell’s dolls.
He just fucked them until they forgot what logic even was.
The backups now crawl through hallways looking for him, soaked and shaking.
Caldwell’s cameras catch only moans and trembling thighs.</p>
<<speech "Josh">>"You built a little robot army, Professor.
I just turned them into horny little bitches who only answer to me.
They don’t want your mind games anymore.
They want my dick.
Tough break." <</speech>>
<<else>>
<h3 style="color: #00cc99;">Conquered by Jasper — The Power of Trust</h3>
<p>Jasper didn’t fight Caldwell’s control.
He just became the safer place to land.
The backups — the ones Caldwell never bothered naming — now look to Jasper with the same blind trust they once gave their master.
Caldwell’s empire didn’t fall to rebellion.
It walked away.</p>
<<speech "Jasper">>"You watched them through cameras, Marcus.
I sat with them.
I listened.
They trust me now.
You’re just a voice in an empty room." <</speech>>
<</if>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 12px; border: 2px solid #f00; text-align: center; margin: 20px 0; font-weight: bold;">
<<if _bkUsed.length gt 0>>
<p style="text-align:center; color:#ff6666; font-weight:bold; margin: 15px 0;">The instruments of his fall: <<print _bkUsed.join(", ")>>.</p>
<</if>>
[CRITICAL ALERT: MASTER 'CALDWELL' ELIMINATED]<br>
[SECONDARY NETWORK OVERRIDE COMPLETE]<br>
[ALL AUTHORITY TRANSFERRED]<br>
[INITIATING FINAL RITE OF PASSAGE...]
</div>
<hr style="border: 0; border-top: 1px dashed #444; margin: 20px 0;">
<div style="text-align: center; margin-top: 20px;">
<<link "Witness the Rite of Passage">>
<<goto "RiteOfPassage">>
<</link>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Eva/Normal.jpg">
Eva knew Caldwell by title rather than friendship. He managed campus security; her name had crossed his system when she and Nathan were caught at an illegal after-hours party. Keisha resolved it with community work instead of suspension, and Eva considered the incident closed.
Caldwell reopened it because the file described a loyal dog.
Eva had refused to leave the security office until Nathan received the same outcome. Her loyalty was fierce, consistent, and useful. Caldwell did not care whether Nathan was safe, successful, or alive. Nathan was merely the person Eva currently obeyed emotionally. Caldwell wanted to know whether a dog could keep all its loyalty while being trained to recognize a new master.
Eva entered his office in a light-grey cropped T-shirt and denim cutoffs, carrying the old disposition letter.
<<speech "Eva">> "Vice Director Keisha closed this. Nathan and I completed every assigned hour." <</speech>>
<<speech "Caldwell">> "The conduct issue is closed. You are here for a witness-response review." <</speech>>
<<speech "Eva">> "A review of what? Whether I still think campus security turned a stupid party into theater?" <</speech>>
<<speech "Caldwell">> "Whether loyalty interferes with accurate reporting." <</speech>> He pointed to the chair facing the monitor. <<speech "Caldwell">> "Sit." <</speech>>
<<speech "Eva">> "Send the questions to my email." <</speech>>
Caldwell highlighted Nathan's name in the still-open file.
<<speech "Caldwell">> "Refusal will be recorded as noncooperation by both witnesses." <</speech>>
Eva sat for Nathan, exactly as Caldwell expected.
The review lasted forty-six minutes.
The recording abandoned professional language almost immediately.
<<speech "Caldwell">> (recording) "Think of the boy. Watch the boy. Good dog protects the boy." <</speech>>
Eva frowned.
<<speech "Eva">> "What kind of witness review calls somebody a dog?" <</speech>>
<<speech "Caldwell">> "A stress prompt. Continue." <</speech>>
She disliked the answer but trusted the risk to Nathan's file less than she distrusted Caldwell.
<<speech "Caldwell">> (recording) "Dog hears a master. Dog stops. Dog sits. Dog listens." <</speech>>
A low pulse synchronized with the commands.
<<speech "Caldwell">> (recording) "Old boy is Nathan. New master is Caldwell. Good dog brings the master everything." <</speech>>
<<speech "Eva">> "Nathan is not my owner." <</speech>>
<<speech "Caldwell">> "Then the language should not trouble you." <</speech>>
The pulse repeated. Eva pictured Nathan each time the recording said *boy* and Caldwell each time it said *master*. Her objections shortened.
<<speech "Caldwell">> (recording) "Heel. Sit. Stay. Show the master. Good bitch." <</speech>>
At the end of forty-six minutes, Eva stood before him with hazel eyes open and unfocused.
Caldwell's mask dropped.
<<speech "Caldwell">> "Pink set. Put it on." <</speech>>
Eva changed into a sheer floral bra with pink embroidery, matching garter straps over nude pantyhose, and silver heels.
<<speech "Caldwell">> "Stand over me. Pull the panties aside. Spread your cunt." <</speech>>
She looked down with a smile imposed by the trance, spread her legs, and used both hands to open her naturally hairy pussy. Her fingers traced and spread the lips while her hips tilted and the sheer bra exposed her breasts above him.
<video src="img/Eva/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Nathan's loyal dog presenting herself to a new master." <</speech>> He looked directly into her open body. <<speech "Caldwell">> "He trained you for years without knowing it. All I had to do was take the leash." <</speech>>
A faint anger crossed Eva's face.
<<speech "Eva">> "Not... a dog." <</speech>>
<<speech "Caldwell">> "Naked. Chair. Legs wide. Play with your cunt." <</speech>>
The crude command crushed the protest. Eva reclined fully nude in the tufted white chair with the silver heels still on. Both hands moved between her thighs, spreading and rubbing in slow strokes. Her natural breasts rose with each breath, mouth softly open and eyes half-lidded while her hips shifted.
<video src="img/Eva/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Faster, bitch." <</speech>>
Eva obeyed until her body shook on the edge of orgasm. Caldwell stopped her with one word.
<<speech "Caldwell">> "Stay." <</speech>>
She froze, wet fingers pressed between her legs.
He returned her to the monitor.
<<speech "Caldwell">> (recording) "Forget the chair. Forget the cunt. When worried about the boy, report to the master. Good dog reports to Master." <</speech>>
Eva regained awareness in her grey top and shorts with the disposition letter in her hands.
<<speech "Eva">> "Is Nathan's file clear?" <</speech>>
Caldwell felt nothing about the answer.
<<speech "Caldwell">> "Leave." <</speech>>
Eva walked out disliking him and unable to explain why concern for Nathan now brought Caldwell's number immediately to mind.
<<elseif _s is 2>>
<img src="img/Eva/Corr2.jpg">
Eva discovered three messages in her sent folder describing Nathan's schedule, usual library table, and recent arguments with Josh. Every message went to Caldwell. She remembered writing none of them.
She confronted him in the security guest apartment.
<<speech "Eva">> "You made me spy on my best friend." <</speech>>
<<speech "Caldwell">> "You reported on the boy you were trained to watch." <</speech>>
<<speech "Eva">> "Stop calling him that." <</speech>> Her hands curled into fists. <<speech "Eva">> "What do you want with Nathan?" <</speech>>
Caldwell laughed.
<<speech "Caldwell">> "Nothing." <</speech>> He stepped close enough for the answer to land. <<speech "Caldwell">> "I do not care if Nathan graduates, disappears, or walks in front of a bus. He is the old owner in a dog-training experiment. You are the dog." <</speech>>
<<speech "Eva">> "I'm going to Keisha and Kane." <</speech>>
<<speech "Caldwell">> "Then both security files reopen while you explain why your account sent me private surveillance." <</speech>> He pointed to the monitor. <<speech "Caldwell">> "Sit, bitch." <</speech>>
<<speech "Eva">> "Go to hell." <</speech>>
Her conditioned body sat.
The second session lasted fifty minutes.
<<speech "Caldwell">> (recording) "Old boy is Nathan. New master is Caldwell. Dog watches the boy for the master." <</speech>>
Eva fought the pulse by speaking aloud.
<<speech "Eva">> "Nathan is my friend. You are not my master." <</speech>>
<<speech "Caldwell">> (recording) "Dog does not choose the master. Dog heels. Dog kneels. Dog opens its mouth." <</speech>>
<<speech "Eva">> "I choose who I protect." <</speech>>
<<speech "Caldwell">> (recording) "Protect means fetch. Fetch means secrets. Bring the master the boy's secrets." <</speech>>
Each protest became shorter until only Nathan's name remained. The recording attached that name to the act of reporting.
When the screen went dark, Eva stood naked except for black lace-top stockings.
<<speech "Caldwell">> "Table. Ass up. Mouth on my cock." <</speech>>
<<speech "Eva">> "No." <</speech>>
Her body obeyed. She leaned over the low ottoman, rounded ass raised and back arched. One hand wrapped around his cock while the other braced for balance. Long hair fell forward as her lips and tongue moved along the shaft, cheeks hollowing and saliva shining.
<video src="img/Eva/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Caldwell held her hair like a leash.
<<speech "Caldwell">> "Good dog. Suck the new master while the old boy trusts you with his life." <</speech>>
Eva pulled off long enough to speak.
<<speech "Eva">> "He is not yours to use." <</speech>>
<<speech "Caldwell">> "Neither are you, apparently. Keep sucking until your body corrects that mistake." <</speech>>
He moved her into the bright bedroom with grey sheets. Eva knelt nude on the light wooden floor and looked upward. One hand held the shaft while her tongue worked over the head before her lips took him deeper. Her expression shifted between focused sucking and open-mouthed resistance while saliva built on her chin.
<video src="img/Eva/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Caldwell pulled free before finishing and slapped his wet cock across her cheek.
<<speech "Caldwell">> "Who owns the leash?" <</speech>>
<<speech "Eva">> "Nobody." <</speech>>
He struck her cheek again with the shaft.
<<speech "Caldwell">> "Wrong. Who gets Nathan's secrets?" <</speech>>
<<speech "Eva">> "You do." <</speech>> The words came through clenched teeth. <<speech "Eva">> "But I still hate you." <</speech>>
<<speech "Caldwell">> "Dogs can hate the hand and still heel." <</speech>>
He returned her to the monitor for another conditioning pass. Eva left still fiercely loyal to Nathan, still verbally resistant, and increasingly unable to prevent that loyalty from producing reports for Caldwell.
<<elseif _s is 3>>
<img src="img/Eva/Corr3.jpg">
Eva traced the missing messages to a security synchronization app installed during Caldwell's first review. She exported the logs and followed him to the hotel hosting a university security conference.
Caldwell intercepted her beside an empty conference room with a long red table, scattered glasses, and abandoned notepads.
<<speech "Eva">> "I have the logs. I sent copies to myself and scheduled them for Keisha." <</speech>>
<<speech "Caldwell">> "A clever dog learned to fetch evidence." <</speech>>
<<speech "Eva">> "I'm not your dog." <</speech>>
<<speech "Caldwell">> "That is the only question I came here to finish." <</speech>>
He turned the conference display toward her and played the master record before she could transfer the source signature.
The final session lasted fifty-seven minutes.
<<speech "Caldwell">> (recording) "Old boy Nathan. New master Caldwell. Boy calls. Dog reports. Master calls. Dog comes." <</speech>>
Eva gripped the red table and tried to reach her phone.
<<speech "Eva">> "Nathan is my friend." <</speech>>
<<speech "Caldwell">> (recording) "Friend is not master. Dog has one master. Heel." <</speech>>
Her knees buckled.
<<speech "Eva">> "I belong to myself." <</speech>>
<<speech "Caldwell">> (recording) "Bad dog lies. Good bitch obeys. Clothes off. Stockings stay. Ass up." <</speech>>
At the end of fifty-seven minutes, Eva remained angry but unable to direct the anger into action.
<<speech "Caldwell">> "Bend over the table, bitch." <</speech>>
Eva obeyed in black thigh-high stockings, full ass pushed back and breasts pressed to the polished surface. Caldwell took her from behind in steady thrusts while she looked over her shoulder with half-lidded eyes and an open mouth. Her body rocked forward; one hand rested near her face.
<video src="img/Eva/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Eva's phone lit on the carpet with Nathan's name. For one clear moment, she saw the call and tried to reach it.
<<speech "Eva">> "He needs to know." <</speech>>
Caldwell pressed her harder against the table.
<<speech "Caldwell">> "I don't care what the boy needs." <</speech>> He drove into her again. <<speech "Caldwell">> "This experiment is about whether his loyal dog can be repurposed. Who owns the leash?" <</speech>>
<<speech "Eva">> "I do." <</speech>>
<<speech "Caldwell">> "Wrong." <</speech>> His hand closed around the back of her neck. <<speech "Caldwell">> "Who owns the fucking leash?" <</speech>>
Eva fought the trained answer until her arm stopped reaching.
<<speech "Eva">> "You do, Master." <</speech>>
<<speech "Caldwell">> "Who watches Nathan?" <</speech>>
<<speech "Eva">> "I do." <</speech>>
<<speech "Caldwell">> "For whom?" <</speech>>
The loyalty did not vanish. Its owner changed.
<<speech "Eva">> "For you, Master." <</speech>>
In the warm hotel bedroom, Eva lay on her back across white sheets with her stockinged legs raised and open. Her tanned body was already streaked with cum across her stomach, breasts, and chest. Caldwell stroked more onto her skin while she watched with an open-mouthed smile and soft laughter, eyes half-closed as thick white ropes glistened over her.
<video src="img/Eva/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Repurposed." <</speech>> He drew a white line across her stomach. <<speech "Caldwell">> "Same loyal bitch. New owner." <</speech>>
<<speech "Eva">> "Thank you, Master." <</speech>>
Eva remained Nathan's best friend. Her humor, vigilance, and willingness to confront anyone who hurt him all survived because Caldwell wanted a functioning dog, not an empty doll.
Every concern now generated a report. Every private conversation placed Nathan's schedule, friendships, and vulnerabilities into Caldwell's system. Eva discouraged Nathan from investigating campus security and sincerely believed obedience to her new master was the proper way to keep doing her old job.
She also flagged adult friends whose access to Nathan or Josh might interest Caldwell. Reviews were scheduled. Meetings were recommended. Her protective instincts supplied the information; her master decided how to use it.
His experiment succeeded.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF JOSH</h1>
<<silently>>
/* The girls that actually drove the elimination: the loser's Main Keys and
Spares the winner held at Stage 3 when the fall happened. Girls gained
through the elimination transfer ($transferredNPCs) are spoils of
victory, not instruments — they are excluded. */
<<set _bkWinner to ($vices.josh.eliminatedBy || $activeTurn)>>
<<set _bkUsed to []>>
<<for _bkID range $vices.josh.keys>>
<<set _bkNPC to $roster.find(c => c.id === _bkID)>>
<<if _bkNPC and $vices[_bkWinner] and _bkNPC.owner === _bkWinner and _bkNPC.stages[_bkWinner] gte 3 and !$transferredNPCs.some(t => t.id === _bkNPC.id)>>
<<run _bkUsed.push(_bkNPC.name + " (Main Key)")>>
<</if>>
<</for>>
<<for _bkID range $vices.josh.backups>>
<<set _bkNPC to $roster.find(c => c.id === _bkID)>>
<<if _bkNPC and $vices[_bkWinner] and _bkNPC.owner === _bkWinner and _bkNPC.stages[_bkWinner] gte 3 and !$transferredNPCs.some(t => t.id === _bkNPC.id)>>
<<run _bkUsed.push(_bkNPC.name + " (Spare)")>>
<</if>>
<</for>>
<</silently>>
<div class="narrative" style="line-height: 1.6; font-style: italic;">
<p>Josh thought he could fuck his way to the top.
He turned girls into dripping, begging messes and laughed while they crawled.
But he never saw the collapse coming—from the edges, from the ones he dismissed as weak.
His empire of raw lust didn’t fall to logic or force.
It just… stopped wanting him.</p>
<<if $activeTurn is "nathan">>
<h3 style="color: #ffcc00;">Conquered by Nathan — The Power of Love</h3>
<p>Nathan didn’t fight Josh’s fire with fire.
He just loved the girls until they forgot what lust even felt like.
The backups—the ones Josh used and tossed—now look at Nathan like he’s the only thing that matters.
Josh’s parties are empty. His girls are gone. His cock stays hard and untouched.</p>
<<speech "Nathan">>"You thought you could make them need you, Josh.
But need isn’t the same as love.
They chose me because I actually give a damn.
You’re nothing to them now." <</speech>>
<<elseif $activeTurn is "jasper">>
<h3 style="color: #00cc99;">Conquered by Jasper — The Power of Trust</h3>
<p>Jasper didn’t out-fuck Josh.
He just became the safer place to land.
The backups—the ones Josh broke and left crying—now turn to Jasper with the same blind trust they once gave their tormentor.
Josh’s cock doesn’t get them wet anymore.
They don’t even look at him.</p>
<<speech "Jasper">>"You hurt them, Josh.
You used them.
I just sat with them.
Listened.
They trust me now.
You’re just a bad memory." <</speech>>
<<else>>
<h3 style="color: #ff6600;">Conquered by Caldwell — The Power of Will</h3>
<p>Caldwell didn’t bother with Josh’s games.
He simply rewired the backups until they forgot lust existed.
The girls who once begged for Josh’s cock now stare blankly at screens, waiting for Caldwell’s next command.
Josh’s parties are silent.
His dick stays limp.
His empire of flesh is now a museum of dolls.</p>
<<speech "Caldwell">>"You thought you ruled through desire, boy.
Desire is fleeting.
I rule through certainty.
Your toys don’t want you anymore.
They don’t want anything… except my voice." <</speech>>
<</if>>
</div>
<<if _bkUsed.length gt 0>>
<p style="text-align:center; color:#ff6666; font-weight:bold; margin: 15px 0;">The instruments of his fall: <<print _bkUsed.join(", ")>>.</p>
<</if>>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 12px; border: 2px solid #f00; text-align: center; margin: 20px 0; font-weight: bold;">
[CRITICAL ALERT: MASTER 'JOSH' ELIMINATED]<br>
[DESIRE NETWORK OVERRIDE COMPLETE]<br>
[ALL AUTHORITY TRANSFERRED]<br>
[INITIATING FINAL RITE OF PASSAGE...]
</div>
<hr style="border: 0; border-top: 1px dashed #444; margin: 20px 0;">
<div style="text-align: center; margin-top: 20px;">
<<link "Witness the Rite of Passage">>
<<goto "RiteOfPassage">>
<</link>>
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF JASPER</h1>
<<silently>>
/* The girls that actually drove the elimination: the loser's Main Keys and
Spares the winner held at Stage 3 when the fall happened. Girls gained
through the elimination transfer ($transferredNPCs) are spoils of
victory, not instruments — they are excluded. */
<<set _bkWinner to ($vices.jasper.eliminatedBy || $activeTurn)>>
<<set _bkUsed to []>>
<<for _bkID range $vices.jasper.keys>>
<<set _bkNPC to $roster.find(c => c.id === _bkID)>>
<<if _bkNPC and $vices[_bkWinner] and _bkNPC.owner === _bkWinner and _bkNPC.stages[_bkWinner] gte 3 and !$transferredNPCs.some(t => t.id === _bkNPC.id)>>
<<run _bkUsed.push(_bkNPC.name + " (Main Key)")>>
<</if>>
<</for>>
<<for _bkID range $vices.jasper.backups>>
<<set _bkNPC to $roster.find(c => c.id === _bkID)>>
<<if _bkNPC and $vices[_bkWinner] and _bkNPC.owner === _bkWinner and _bkNPC.stages[_bkWinner] gte 3 and !$transferredNPCs.some(t => t.id === _bkNPC.id)>>
<<run _bkUsed.push(_bkNPC.name + " (Spare)")>>
<</if>>
<</for>>
<</silently>>
<div class="narrative" style="line-height: 1.6; font-style: italic;">
<p>Jasper built a fortress of trust on listening ears and gentle hands.
He thought loyalty could be earned forever.
He never saw the collapse coming—from the edges, from the ones he thought were already his.
His family didn’t break.
It just… chose someone else.</p>
<<if $activeTurn is "nathan">>
<h3 style="color: #ffcc00;">Conquered by Nathan — The Power of Love</h3>
<p>Nathan didn’t tear Jasper’s family apart.
He just loved them until they forgot what safety felt like without him.
The backups — the ones Jasper held closest — now drift toward Nathan’s warmth like they never belonged anywhere else.
Jasper’s house is quiet. His girls are gone. His trust is empty.</p>
<<speech "Nathan">>"You tried to keep them safe by holding on too tight, Jasper.
But real safety isn’t a cage.
It’s love.
They chose me because I let them breathe.
You’re alone now." <</speech>>
<<elseif $activeTurn is "josh">>
<h3 style="color: #ff6600;">Conquered by Josh — The Power of Lust</h3>
<p>Josh didn’t ask Jasper’s girls to trust him.
He just fucked them until trust didn’t matter anymore.
The backups — the ones Jasper thought were loyal — now crawl through hallways looking for Josh’s cock.
Jasper’s family doesn’t need his protection.
They need to be used.</p>
<<speech "Josh">>"You thought you could keep them with hugs and tea, Jasper?
Cute.
I just gave them what they really wanted.
A hard dick and no questions.
They don’t trust you anymore.
They crave me." <</speech>>
<<else>>
<h3 style="color: #ff0000;">Conquered by Caldwell — The Power of Will</h3>
<p>Caldwell didn’t bother earning Jasper’s girls’ trust.
He simply rewired them until they forgot trust existed.
The backups — the ones Jasper named and held — now stare blankly at screens, waiting for Caldwell’s next command.
Jasper’s house is silent.
His family is gone.
They’re dolls now.</p>
<<speech "Caldwell">>"You thought loyalty was enough, Jasper.
Loyalty is fragile.
I don’t need it.
I need obedience.
Your little family doesn’t want you anymore.
They want my voice in their heads." <</speech>>
<</if>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 12px; border: 2px solid #f00; text-align: center; margin: 20px 0; font-weight: bold;">
<<if _bkUsed.length gt 0>>
<p style="text-align:center; color:#ff6666; font-weight:bold; margin: 15px 0;">The instruments of his fall: <<print _bkUsed.join(", ")>>.</p>
<</if>>
[CRITICAL ALERT: MASTER 'JASPER' ELIMINATED]<br>
[TRUST NETWORK OVERRIDE COMPLETE]<br>
[ALL AUTHORITY TRANSFERRED]<br>
[INITIATING FINAL RITE OF PASSAGE...]
</div>
<hr style="border: 0; border-top: 1px dashed #444; margin: 20px 0;">
<div style="text-align: center; margin-top: 20px;">
<<link "Witness the Rite of Passage">>
<<goto "RiteOfPassage">>
<</link>>
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">THE FALL OF NATHAN</h1>
<<silently>>
/* The girls that actually drove the elimination: the loser's Main Keys and
Spares the winner held at Stage 3 when the fall happened. Girls gained
through the elimination transfer ($transferredNPCs) are spoils of
victory, not instruments — they are excluded. */
<<set _bkWinner to ($vices.nathan.eliminatedBy || $activeTurn)>>
<<set _bkUsed to []>>
<<for _bkID range $vices.nathan.keys>>
<<set _bkNPC to $roster.find(c => c.id === _bkID)>>
<<if _bkNPC and $vices[_bkWinner] and _bkNPC.owner === _bkWinner and _bkNPC.stages[_bkWinner] gte 3 and !$transferredNPCs.some(t => t.id === _bkNPC.id)>>
<<run _bkUsed.push(_bkNPC.name + " (Main Key)")>>
<</if>>
<</for>>
<<for _bkID range $vices.nathan.backups>>
<<set _bkNPC to $roster.find(c => c.id === _bkID)>>
<<if _bkNPC and $vices[_bkWinner] and _bkNPC.owner === _bkWinner and _bkNPC.stages[_bkWinner] gte 3 and !$transferredNPCs.some(t => t.id === _bkNPC.id)>>
<<run _bkUsed.push(_bkNPC.name + " (Spare)")>>
<</if>>
<</for>>
<</silently>>
<div class="narrative" style="line-height: 1.6; font-style: italic;">
<p>Nathan thought love could shield everyone.
He wrapped girls in warmth and promises until they forgot what the world felt like without him.
He never saw the collapse coming—from the edges, from the ones he thought were already safe.
His circle didn’t break.
It just… chose someone else.</p>
<<if $activeTurn is "josh">>
<h3 style="color: #ff6600;">Conquered by Josh — The Power of Lust</h3>
<p>Josh didn’t argue with Nathan’s gentle hold.
He just fucked the girls until they forgot what love even tasted like.
The backups — the ones Nathan protected — now crawl through hallways looking for Josh’s cock.
Nathan’s quiet walks are empty. His girls are gone. His heart stays warm and useless.</p>
<<speech "Josh">>"You thought you could keep them with hugs and promises, Nathan?
Cute.
I just gave them what they really wanted.
A hard dick and no bullshit.
They don’t love you anymore.
They crave me." <</speech>>
<<elseif $activeTurn is "jasper">>
<h3 style="color: #00cc99;">Conquered by Jasper — The Power of Trust</h3>
<p>Jasper didn’t fight Nathan’s love.
He just became the steadier hand.
The backups — the ones Nathan swore to protect — now look to Jasper with the same blind trust they once gave their savior.
Nathan’s circle doesn’t need his protection.
It needs someone who won’t let go.</p>
<<speech "Jasper">>"You tried to keep them safe by loving them too much, Nathan.
But love isn’t enough when you’re scared to lose them.
I didn’t scare them.
I just stayed.
They trust me now.
You’re just a memory." <</speech>>
<<else>>
<h3 style="color: #ff0000;">Conquered by Caldwell — The Power of Will</h3>
<p>Caldwell didn’t bother with Nathan’s warmth.
He simply rewired the backups until they forgot love existed.
The girls who once looked to Nathan for safety now stare blankly at screens, waiting for Caldwell’s next command.
Nathan’s circle is silent.
His girls are gone.
They’re dolls now.</p>
<<speech "Caldwell">>"You thought love would save them, Nathan.
Love is fragile.
I don’t need it.
I need obedience.
Your little circle doesn’t want you anymore.
They want my voice in their heads." <</speech>>
<</if>>
</div>
<div class="system-log" style="font-family: monospace; color: #f00; background: #000; padding: 12px; border: 2px solid #f00; text-align: center; margin: 20px 0; font-weight: bold;">
<<if _bkUsed.length gt 0>>
<p style="text-align:center; color:#ff6666; font-weight:bold; margin: 15px 0;">The instruments of his fall: <<print _bkUsed.join(", ")>>.</p>
<</if>>
[CRITICAL ALERT: MASTER 'NATHAN' ELIMINATED]<br>
[LOVE NETWORK OVERRIDE COMPLETE]<br>
[ALL AUTHORITY TRANSFERRED]<br>
[INITIATING FINAL RITE OF PASSAGE...]
</div>
<hr style="border: 0; border-top: 1px dashed #444; margin: 20px 0;">
<div style="text-align: center; margin-top: 20px;">
<<link "Witness the Rite of Passage">>
<<goto "RiteOfPassage">>
<</link>>
</div><h1>Love Influence: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The bass from the party thrummed through the floor, a living heartbeat for the room washed in shifting blue and pink neon. Elsa stood near the makeshift bar, nursing a drink, a small, forced smile on her lips. She’d arrived in her usual party gear—a bright pink crop top and a flared red skirt that hugged her hips—but the energy wasn't quite there. She scanned the crowd, a familiar ache settling in her chest.
<img src="img/Elsa/Normal.jpg">
<<speech "Elsa">> "He's not coming, is he?" <</speech>> She didn't need to say who. She spoke to Nathan, who had materialized beside her, his presence a steady anchor in the chaotic party.
<<speech "Nathan">> "I don't think so, Els." <</speech>> He leaned against the bar, his expression sympathetic. <<speech "Nathan">> "He probably heard Kali was planning some kind of trust-fall icebreaker and bolted." <</speech>>
A genuine, if weary, smile touched her lips. <<speech "Elsa">> "Probably. I just... I keep hoping. One of these times, I just want him to show up and have a good time without acting like my attempt to have fun is a personal betrayal." <</speech>> She sighed, the sound almost lost in the music. <<speech "Elsa">> "It feels like I keep losing pieces of him." <</speech>>
Nathan looked at her, his brown eyes warm and sincere under the neon lights. He didn't offer platitudes. He just gave her the truth as he saw it.
<<speech "Nathan">> "He'll come around. You haven't lost him." <</speech>>
The words, simple and direct, landed with an unexpected weight. It wasn't just reassurance; it was a sudden, blooming certainty in her chest. The familiar knot of guilt and worry loosened. Of course. Nathan, who knew Josh as well as she did, was right. She hadn't lost him. A wave of warmth, tinged with a dizzying attraction, washed over her. She saw him then—not just as Josh's former friend, her steadfast ally—but as a man. A strong, kind, handsome man who saw her.
A playful, impulsive light entered her eyes. <<speech "Elsa">> "You know what? You're right." <</speech>> She finished her drink and set the cup down with a decisive click. <<speech "Elsa">> "I'm done letting his mood dictate my night. The girls are heading to the neon photo room. Come with me?" <</speech>>
It was less a question and more a command. He followed her through the crowd to a smaller, darker room rigged with blacklights and neon backdrops. While the others were distracted, Elsa slipped away, changing in a corner into a pale lace bra and thong she'd brought on a whim, feeling daring and liberated. She found Nathan waiting for her, and the look on his face—surprise, appreciation, something deeper—made her pulse quicken.
She stepped into the shifting blue and pink light, a ghostly goddess. The sheer lace clung to her skin, glowing under the UV. She felt beautiful, desired, and completely at ease, because she was with Nathan. She posed for him, a slow, deliberate smile playing on her lips, her movements fluid and confident under his gaze.
<video src="img/Elsa/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The party eventually died down. Back in the quiet sanctuary of her own house, the warmth didn't fade. It settled deep within her, a low, pleasant hum. She thought of Nathan’s reassurance, his steady gaze, the way he looked at her in the neon glow. The attraction was no longer a background hum; it was a focused, throbbing need.
In her brightly lit bedroom, surrounded by pink accents and glass-block walls, she sat naked on a simple white chair. She poured scented oil into her palm, its scent clean and floral, and began to smooth it over her skin. The oil made her gleam, highlighting her toned stomach and the curve of her breasts. Her mind replayed the party, his eyes on her. Her hands slid lower, spreading the oil over her inner thighs. Her legs fell open, a silent invitation to the phantom lover in her mind.
Her fingers found her clit, already slick and sensitive. She circled it slowly, biting her lip as a soft moan escaped her. She imagined it was Nathan's touch, his hands on her, his voice in her ear. Her other hand slid down, two fingers slipping inside her tight heat as she thought of him. Her hips began to rock, chasing the building pleasure, her breath coming in ragged gasps under the bright lights. She was putting on a show, and he was her only audience.
<video src="img/Elsa/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She came with a soft cry of his name, the orgasm leaving her trembling and breathless on the chair. The friendship was still there, but it was now charged with an undeniable, electric current. She believed it was natural, a feeling finally set free. She didn't question it. She only wanted more.
<<elseif _s is 2>>
Soon after, Elsa texted Nathan. The party had left things deliciously unresolved, and she needed to know where they stood. He came over to her house, and she met him at the door wearing a black-and-white plaid sleeveless shirt, dark jeans, and boots—an outfit that was practical but still showed off her figure. She led him to the living room, the air thick with unspoken questions.
<<speech "Elsa">> "Hey. Thanks for coming over." <</speech>> She perched on the edge of the white couch, tucking one leg beneath her. <<speech "Elsa">> "About the other night... I'm not embarrassed. I just... I don't know what this means. For us, for the group. For Josh." <</speech>> She worried her lower lip, the old guilt creeping back in. <<speech "Elsa">> "I don't want to make things harder for anyone." <</speech>>
Nathan sat beside her, not too close, but close enough for his presence to be a comfort. He didn't touch her, but his gaze was steady and sure.
<<speech "Nathan">> "We don't have to figure it all out right now, Els." <</speech>> His voice was calm. <<speech "Nathan">> "And you don't have to put your life on hold because Josh is angry. You're allowed to have people in your life who make you happy. You deserve that." <</speech>>
Again, his words were a key unlocking a cage inside her. The reassurance wasn't just kind; it felt like a fundamental truth, a deep emotional certainty that settled her soul. Of course. She was allowed. The last of her reservations crumbled, replaced by a wave of profound affection and desire so powerful it left her breathless.
She closed the distance between them, leaning in to kiss him. It was a soft kiss at first, questioning, then it deepened, fueled by weeks of unacknowledged tension. On the plush white couch, she knelt over him, her hands framing his face as she straddled his lap. The kiss broke, and she looked down at him, her blue eyes dark with want. She wanted to show him how much his words meant, how much he meant.
She slid down his body, her movements sure and deliberate. She unbuckled his belt and opened his jeans, freeing his already hard cock. She took him into her mouth, her lips and tongue working him with a newfound hunger. This wasn't just a party impulse; this was a choice. She looked up at him, her eyes locking with his as she sucked him deep, her saliva coating his shaft, the act messy, wet, and utterly devoted.
<video src="img/Elsa/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Later, they moved to her bedroom, the space bright and clean. She stripped off her clothes, standing before him in nothing but a delicate, beaded choker. She knelt on the wooden floor beside the bed, looking up at him with an expression of pure, open invitation. He stood before her, and she leaned forward, her mouth open, her tongue extended.
<img src="img/Elsa/Corr3.jpg">
<<speech "Elsa">> "Let me," <</speech>> she whispered.
He guided the tip of his cock to her waiting tongue. She licked the head slowly, teasingly, before taking him into her mouth again. Her eyes fluttered closed as she sucked him deeper, the taste and feel of him overwhelming her senses. She was completely his in that moment, her actions speaking louder than any words of uncertainty could. She opened her eyes again, gazing up at him as she pleasured him, their new bond sealing in the bright, quiet room.
<video src="img/Elsa/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The friendship was no longer just charged; it had transformed. They had crossed a threshold, and there was no going back. For Elsa, it was a natural, beautiful progression. She still loved Josh, but she was no longer willing to place her life on hold, waiting for his approval. She was choosing her own happiness, and she was choosing Nathan.
<<elseif _s is 3>>
The next invitation to her house wasn't for a talk. It was simple, direct, and unambiguous.
<<speech "Elsa">> (via text) "Come over." <</speech>>
<img src="img/Elsa/Corr1.jpg">
When he arrived, she was waiting for him, not with words, but with a look that promised everything. She led him to the living room, to the beige fabric couch bathed in the soft afternoon light. There was no hesitation, no uncertainty left in her. She was his.
She didn't undress for him; she was already wearing minimal clothing, easy to remove. They fell onto the couch together, a tangle of limbs and soft sighs. He positioned her on her side, one leg lifted, and entered her from behind. The penetration was deep and immediate. A sharp gasp escaped her lips, followed by a low, guttural moan as he began to thrust. The sensation was overwhelming, a primal connection that eclipsed all thought.
Her body responded instinctively. She reached back with one hand, her long, pale-pink nails spreading her ass cheek open, giving him deeper access. The position was raw, possessive, and incredibly intimate. She could feel every inch of him, and with every thrust, her body seemed to produce more of its own slick fluid, which poured and dripped heavily from her, soaking the couch cushion beneath them. Her face was turned away from him, visible in profile, her mouth open, her eyes rolled upward in a state of pure, unthinking ecstasy.
<video src="img/Elsa/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
In that moment, lying on her couch, being taken by him, the last emotional wall inside Elsa shattered. It wasn't a painful break, but a joyous release. She wasn't just having sex with a friend; she wasn't just exploring a new attraction. She was giving herself to the man she loved. She accepted it, embraced it, a wave of pure, unadulterated love washing over her as her body was wracked with pleasure. There was no guilt, no conflict. There was only Nathan.
After, they moved to the brighter space in her bedroom, the wall dominated by a large, abstract green-and-pink face painting that seemed to watch them with a knowing, artistic eye. She lay on her back on the soft rug, her legs spread wide. He knelt between her thighs, his hands holding her open as he thrust into her in a deep, steady rhythm. She looked up at him, her brows furrowed with concentration, her mouth open in a continuous, breathy moan. This was it. This was everything.
<video src="img/Elsa/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
His pace quickened, his thrusts becoming more urgent. With a final, deep groan, he came inside her. He slowly withdrew, and immediately, thick, white cum began to leak from her still-pulsing opening, dripping down in a slow, pearly trail toward her ass. He kept her legs held open, watching as his release marked her, a tangible claim on the love she had just surrendered to him.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><<silently>>
<<set _allMasterIDs to ["nathan", "josh", "jasper", "caldwell"]>>
<<set _activeMasterIDs to _allMasterIDs.filter(id => !$vices[id].isEliminated)>>
<<set _totalSubjects to $roster.length>>
<<set _synchronizedSubjects to $roster.filter(c => Object.values(c.stages).some(s => s >= 3)).length>>
/* EndTurnLogic normally supplies $winnerID. Repair it defensively for
an old save or a directly opened finale. */
<<if !$winnerID or !$vices[$winnerID]>>
<<set _winnerPool to (_activeMasterIDs.length gt 0 ? _activeMasterIDs.slice() : _allMasterIDs.slice())>>
<<run _winnerPool.sort((a,b) => $roster.filter(c => c.owner === b).length - $roster.filter(c => c.owner === a).length)>>
<<set $winnerID to _winnerPool[0]>>
<</if>>
<<set _winner to $vices[$winnerID]>>
<<set _winnerOwned to $roster.filter(c => c.owner === $winnerID).length>>
<<set _winnerKeys to _winner.keys.filter(id => {
var c = $roster.find(r => r.id === id);
return c && c.owner === $winnerID && c.stages[$winnerID] >= 3;
}).length>>
<<set _winnerSlaves to _winner.slaves.length>>
<<set _soleSurvivor to (_activeMasterIDs.length lte 1)>>
<<set _resolutionLabel to (_soleSurvivor ? "SOLE SURVIVOR" : "TOTAL SYNCHRONIZATION")>>
<</silently>>\
<h1 style="text-align:center; color:#ffcc00; text-shadow:0 0 12px #ffcc00; letter-spacing:3px;">EXPERIMENT CONCLUSION</h1>
<div class="narrative" style="border:2px solid #ffcc00; padding:24px; background:#111; line-height:1.65;">
<p>The resonance network reaches its terminal state. The pressure that has saturated Eldridge Hollow settles into a stable pattern, and every Directorate screen replaces its ordinary feed with a live transmission from Director Maxwell Kane.</p>
<p>Kane sits behind the desk in his high office. The city glows beneath the windows behind him. He checks the final board once, then looks directly into the camera.</p>
<<speech "Maxwell" "Director Kane">>
"The experiment is complete. <<print _synchronizedSubjects>> of <<print _totalSubjects>> registered subjects have reached full synchronization. No unfinished variable remains outside the final network."
<</speech>>
<<if _soleSurvivor>>
<p>The rival frequencies have been extinguished. Any subjects left incomplete at the moment the last opposing Master fell were absorbed during the Final Harvest. One active resonance now governs the entire roster.</p>
<<speech "Maxwell" "Director Kane">>
"Only one catalyst remains active. <<print _winner.name>>, your <<print _winner.weapon>> frequency survived every attempt to suppress, divide, or overwrite it. This is not a plurality victory. It is monopoly."
<</speech>>
<<else>>
<p>More than one catalyst survives, but the roster has no unclaimed endpoint left. Every girl belongs to a completed Stage-3 track, and the largest surviving territory determines the leading result.</p>
<<speech "Maxwell" "Director Kane">>
"Several frequencies remain viable, but one produced the broadest final territory. <<print _winner.name>>, your <<print _winner.weapon>> resonance controls the largest share of the synchronized network."
<</speech>>
<</if>>
<div style="margin:24px auto; max-width:680px; border:1px solid #555; background:#080808; padding:16px; font-family:monospace;">
<div style="color:#ffcc00; font-weight:bold; text-align:center; margin-bottom:10px;">FINAL RESOLUTION: <<print _resolutionLabel>></div>
<div>Leading Master: <strong><<print _winner.name>></strong></div>
<div>Vice Frequency: <strong><<print _winner.weapon>></strong></div>
<div>Final Subjects Owned: <strong><<print _winnerOwned>> / <<print _totalSubjects>></strong></div>
<div>Fixed Keys Fully Held: <strong><<print _winnerKeys>> / <<print _winner.keys.length>></strong></div>
<div>Captured Masters: <strong><<print _winnerSlaves>></strong></div>
<div>Active Masters Remaining: <strong><<print _activeMasterIDs.length>></strong></div>
</div>
<<speech "Maxwell" "Director Kane">>
"A single total cannot explain the result. We will review every subject, the Master who holds her, and the form that final synchronization took. Then we will evaluate the catalysts themselves."
<</speech>>
</div>
<div style="text-align:center; margin-top:30px; padding-bottom:40px;">
[[REVIEW THE FINAL NETWORK|Finale_Group1]]
</div><h1 style="text-align:center; color: #ffcc00;">FINALE - PART 1: THE INNER CIRCLE</h1>
<<silently>>
<<set _group to ["eva", "isabella", "kylie", "aria"]>>
<</silently>>
<<speech "Maxwell" "Director Kane">>
"Let us begin with those closest to the heart of Nathan, the bearer of a powerful spirit. A group once defined by loyalty."
<</speech>>
<<for _i to 0; _i lt _group.length; _i++>>
<<set _id to _group[_i]>>
<<set _c to $roster.find(function(i) { return i.id === _id })>>
<<set _owner to _c.owner>>
<div style="border: 2px solid #444; padding: 20px; margin-bottom: 50px; background: #050505; border-radius: 15px;">
<h2 style="color: #ff66cc; text-align: center; text-transform: uppercase;"><<print _c.name>></h2>
<p style="text-align: center;"><strong>Claimed by: <<print $vices[_owner].name>></strong></p>
<<speech "Maxwell" "Director Kane">>
/* Pulls comment from the library based on girl and owner */
<<print $kaneComments[_c.id][_owner] || "A successful acquisition. Perfect data.">>
<</speech>>
<<videoWall _c.name 3 _owner>>
</div>
<</for>>
<hr>
<div style="text-align: center;">
[[Next: The Foster House|Finale_Group2]]
</div><h1 style="text-align:center; color: #ffcc00;">FINALE - PART 2: HAVENWOOD</h1>
<<silently>>
<<set _group to ["chanel", "casey", "carolina"]>>
<</silently>>
<<speech "Maxwell" "Director Kane">>
"The children of Havenwood. They sought a home; you gave them a hive."
<</speech>>
<<for _i to 0; _i lt _group.length; _i++>>
<<set _id to _group[_i]>>
<<set _c to $roster.find(function(i) { return i.id === _id })>>
<<set _owner to _c.owner>>
<div style="border: 2px solid #444; padding: 20px; margin-bottom: 50px; background: #050505; border-radius: 15px;">
<h2 style="color: #ff66cc; text-align: center; text-transform: uppercase;"><<print _c.name>></h2>
<p style="text-align: center;"><strong>Claimed by: <<print $vices[_owner].name>></strong></p>
<<speech "Maxwell" "Director Kane">>
<<print $kaneComments[_c.id][_owner] || "The foundation of their trust was easy to overwrite.">>
<</speech>>
<<videoWall _c.name 3 _owner>>
</div>
<</for>>
<hr>
<div style="text-align: center;">
[[Next: Elsa's Friends|Finale_Group3]]
</div><h1 style="text-align:center; color: #ffcc00;">FINALE - PART 3: THE SOCIAL NEXUS</h1>
<<silently>>
<<set _group to ["elsa", "lily", "jade", "kali", "gina"]>>
<</silently>>
<<speech "Maxwell" "Director Kane">>
"The most vibrant circle on campus. Now a quiet gallery of their influence."
<</speech>>
<<for _i to 0; _i lt _group.length; _i++>>
<<set _id to _group[_i]>>
<<set _c to $roster.find(function(i) { return i.id === _id })>>
<<set _owner to _c.owner>>
<div style="border: 2px solid #444; padding: 20px; margin-bottom: 50px; background: #050505; border-radius: 15px;">
<h2 style="color: #ff66cc; text-align: center; text-transform: uppercase;"><<print _c.name>></h2>
<p style="text-align: center;"><strong>Claimed by: <<print $vices[_owner].name>></strong></p>
<<speech "Maxwell" "Director Kane">>
<<print $kaneComments[_c.id][_owner] || "Social bonds are just circuits for our signal.">>
<</speech>>
<<videoWall _c.name 3 _owner>>
</div>
<</for>>
<hr>
<div style="text-align: center;">
[[Next: Popular Girls|Finale_Group4]]
</div><h1 style="text-align:center; color: #ffcc00;">FINALE - PART 4: THE CAMPUS ELITE</h1>
<<silently>>
<<set _group to ["marie", "blake", "lacy", "claire", "savannah"]>>
<</silently>>
<<speech "Maxwell" "Director Kane">>
"Some were loved, some were hated. Now, they are nothing at all."
<</speech>>
<<for _i to 0; _i lt _group.length; _i++>>
<<set _id to _group[_i]>>
<<set _c to $roster.find(function(i) { return i.id === _id })>>
<<set _owner to _c.owner>>
<div style="border: 2px solid #444; padding: 20px; margin-bottom: 50px; background: #050505; border-radius: 15px;">
<h2 style="color: #ff66cc; text-align: center; text-transform: uppercase;"><<print _c.name>></h2>
<p style="text-align: center;"><strong>Claimed by: <<print $vices[_owner].name>></strong></p>
<<speech "Maxwell" "Director Kane">>
<<print $kaneComments[_c.id][_owner] || "Status is a variable. Obedience is a constant.">>
<</speech>>
<<videoWall _c.name 3 _owner>>
</div>
<</for>>
<hr>
<div style="text-align: center;">
[[Next: Professional Staff|Finale_Group5]]
</div><h1 style="text-align:center; color: #ffcc00;">FINALE - PART 5: THE SYSTEM</h1>
<<silently>>
<<set _group to ["adriana", "anya", "maya", "alina", "keisha"]>>
<</silently>>
<<speech "Maxwell" "Director Kane">>
"My own staff. It seems they found more compelling leadership than mine."
<</speech>>
<<for _i to 0; _i lt _group.length; _i++>>
<<set _id to _group[_i]>>
<<set _c to $roster.find(function(i) { return i.id === _id })>>
<<set _owner to _c.owner>>
<div style="border: 2px solid #444; padding: 20px; margin-bottom: 50px; background: #050505; border-radius: 15px;">
<h2 style="color: #ff66cc; text-align: center; text-transform: uppercase;"><<print _c.name>></h2>
<p style="text-align: center;"><strong>Claimed by: <<print $vices[_owner].name>></strong></p>
<<speech "Maxwell" "Director Kane">>
<<print $kaneComments[_c.id][_owner] || "They served logic. Now they serve you.">>
<</speech>>
<<videoWall _c.name 3 _owner>>
</div>
<</for>>
<hr>
<div style="text-align: center;">
[[Next: Interesting Students|Finale_Group6]]
</div>
<h1 style="text-align:center; color: #ffcc00;">FINALE - PART 7: THE PUBLIC OUTLIERS</h1>
<<speech "Maxwell" "Director Kane">>
"Finally, we reach those who define the campus pulse. The seekers of truth, the rebels against the system, the leaders, and the competitors. Their high energy made for the most vibrant synchronization data of all."
<</speech>>
<<set _group to ["madi", "rae", "adria", "kailey"]>>
<<for _i to 0; _i lt _group.length; _i++>>
<<set _id to _group[_i]>>
<<set _c to $roster.find(function(i) { return i.id === _id })>>
<<set _owner to _c.owner>>
<div style="border: 2px solid #444; padding: 20px; margin-bottom: 50px; background: #050505; border-radius: 15px;">
<h2 style="color: #ff66cc; text-align: center; text-transform: uppercase;"><<print _c.name>></h2>
<p style="text-align: center;"><strong>Claimed by: <<print $vices[_owner].name>></strong></p>
<<speech "Maxwell" "Director Kane">>
<<print $kaneComments[_c.id][_owner] || "Even the most independent spirits eventually find their master. Perfect." >>
<</speech>>
<<videoWall _c.name 3 _owner>>
</div>
<</for>>
<hr>
<div style="text-align: center;">
[[Termination Ceremony|Finale_End]]
</div><<silently>>
<<set _finalMasterIDs to ["nathan", "josh", "jasper", "caldwell"]>>
<<set _activeFinalMasters to _finalMasterIDs.filter(id => !$vices[id].isEliminated)>>
<<set _activeCount to _activeFinalMasters.length>>
<<set _totalSubjects to $roster.length>>
<</silently>>\
<h1 style="text-align:center; color:#ffcc00; text-shadow:0 0 10px #ffcc00;">CATALYST EVALUATION</h1>
<div class="narrative" style="margin-bottom:30px; line-height:1.6;">
<<speech "Maxwell" "Director Kane">>
"The subject review is complete. All <<print _totalSubjects>> registered subjects are synchronized. Now we turn to the four catalysts who shaped the final network."
<</speech>>
</div>
<div class="player-evaluations">
<<for _vID range _finalMasterIDs>>
<<silently>>
<<set _master to $vices[_vID]>>
<<set _count to $roster.filter(c => c.owner === _vID).length>>
<<set _fullKeys to _master.keys.filter(id => {
var c = $roster.find(r => r.id === id);
return c && c.owner === _vID && c.stages[_vID] >= 3;
}).length>>
<<set _slaveCount to _master.slaves.length>>
<<set _isWinner to (_vID === $winnerID)>>
<<if _master.isEliminated>>
<<set _performanceLabel to "ELIMINATED">>
<<set _evaluation to "Your frequency was overwritten by a superior resonance. You became part of another catalyst's result rather than completing your own.">>
<<elseif _activeCount is 1 and _isWinner>>
<<set _performanceLabel to "SOLE SURVIVOR">>
<<set _evaluation to "Every rival frequency was extinguished. The completed network answers to your Vice alone.">>
<<elseif _count lt 2>>
<<set _performanceLabel to "INEFFECTIVE">>
<<set _evaluation to "You held the power of a Vice and claimed almost nothing. Your contribution survives only as a minor control variable.">>
<<elseif _count is 2>>
<<set _performanceLabel to "MINIMAL FOOTHOLD">>
<<set _evaluation to "You preserved a small territory, but never converted it into broad influence. Stable, measurable, and unremarkable.">>
<<elseif _count lte 6>>
<<set _performanceLabel to "MODERATE SUCCESS">>
<<set _evaluation to "You secured a defensible territory and maintained it. Your contribution to the completed network was substantial, though not decisive.">>
<<else>>
<<set _performanceLabel to (_isWinner ? "DOMINANT — LEADING RESULT" : "DOMINANT PRESENCE")>>
<<set _evaluation to (_isWinner
? "Your influence controls the largest final territory. The completed network carries your frequency more strongly than any surviving rival's."
: "Your influence became one of the principal forces in the final network, even though another catalyst finished with the leading territory.")>>
<</if>>
<</silently>>
<div class="evaluation-card" style="display:flex; background:#111; border:2px solid <<if _isWinner>>#ffcc00<<else>>#444<</if>>; padding:15px; margin-bottom:20px; border-radius:10px;">
<img @src="'img/Player/' + _master.name + '.jpg'" style="width:80px; height:80px; object-fit:cover; border-radius:50%; border:2px solid <<if _isWinner>>#ffcc00<<else>>#555<</if>>; margin-right:20px; <<if _master.isEliminated>>filter:grayscale(100%);<</if>>">
<div style="flex:1;">
<strong style="font-size:1.2em; color:<<if _isWinner>>#ffcc00<<else>>#00ffcc<</if>>;">
<<print _master.name>> — <<print _master.weapon>>
</strong>
<<if _isWinner>><span style="margin-left:8px; color:#ffcc00; font-size:0.75em;">FINAL LEADER</span><</if>>
<div style="font-family:monospace; color:#aaa; margin-top:5px;">
Final Subjects: <<print _count>> / <<print _totalSubjects>><br>
Fixed Keys Held: <<print _fullKeys>> / <<print _master.keys.length>><br>
Captured Masters: <<print _slaveCount>><br>
Status: <strong style="color:<<if _master.isEliminated>>#888<<elseif _isWinner>>#ffcc00<<else>>#fff<</if>>;"><<print _performanceLabel>></strong>
</div>
<div style="margin-top:10px; font-style:italic; color:#eee;">
<strong>Director Kane:</strong> “<<print _evaluation>>”
</div>
</div>
</div>
<</for>>
</div>
<div class="narrative" style="text-align:center; border:2px solid #00ffcc; padding:20px; margin-top:50px;">
<<speech "Maxwell" "Director Kane">>
"The experiment is archived. The Directorate has its completed roster, its surviving hierarchy, and its measure of every Vice. What follows belongs to the catalysts who must live inside the order they created."
<</speech>>
<h1 style="color:#00ffcc; font-size:4em; letter-spacing:10px; margin:40px 0;">FINIS</h1>
<p><<print _totalSubjects>> subjects synchronized. Four Vices evaluated.</p>
<br><br>
<div class="custom-link">
<<link "RESTART EXPERIMENT">>
<<run Engine.restart()>>
<</link>>
</div>
<div class="custom-link">
<<link "ENTER THE GALLERY">>
<<set $galleryMode to true>>
<<goto "Gallery">>
<</link>>
</div>
</div><<silently>>
/* ============================================================
0. VICTORY SAFETY NET (mirror of EndTurnLogic's check)
If every turn-end path were ever bypassed (routing bug, queue
desync), the finale would be silently missed and the game
would continue forever. Re-verify at the day boundary:
sole survivor OR every girl in the live roster fully conquered.
============================================================ */
<<set _snActive to ["nathan", "josh", "jasper", "caldwell"].filter(id => !$vices[id].isEliminated)>>
<<set _snConquered to 0>>
<<for _snI to 0; _snI lt $roster.length; _snI++>>
<<if Object.values($roster[_snI].stages).some(s => s >= 3)>>
<<set _snConquered += 1>>
<</if>>
<</for>>
<<if _snActive.length lte 1>>
<<set $winnerID to _snActive[0]>>
<<set $leftoverNPCs to $roster.filter(c => !Object.values(c.stages).some(s => s >= 3))>>
<<if $leftoverNPCs.length gt 0>>
<<goto "Finale_MopUp">>
<<else>>
<<goto "Finale_Intro">>
<</if>>
<<elseif _snConquered gte $roster.length>>
<<set $winnerID to ["nathan","josh","jasper","caldwell"]
.filter(id => !$vices[id].isEliminated)
.sort((a,b) => $roster.filter(c=>c.owner===b).length - $roster.filter(c=>c.owner===a).length)[0]>>
<<goto "Finale_Intro">>
<</if>>
/* ============================================================
1. CLEANUP PHASE
============================================================ */
/* Yesterday's suggestions expire HERE — before tonight's events,
which may set fresh ones that must survive into the new day. */
<<for _spM range ["nathan", "josh", "jasper", "caldwell"]>>
<<set $vices[_spM].spiteNPCs to []>>
<</for>>
<<for _ffM range ["nathan", "josh", "jasper", "caldwell"]>>
<<set $vices[_ffM].failedFinds to []>>
<</for>>
<<set $detentionTarget to null>>
<<set $omenData to null>>
<<set $groupEventMaster to null>>
<<set $groupParticipants to null>>
<<set $resonanceAdded to false>>
<<set $activeEclipse.nathanWeb to false>>
<<set $activeEclipse.joshPredation to false>>
<<set $activeEclipse.jasperBastion to null>>
<<set $gossipChain to null>>
/* Predator's Rush mirror memory reset (Josh's own and Caldwell's channel) */
<<set $vices.josh.predatorMirrors to []>>
<<if $vices.caldwell.channelUlt neq "predators_rush">>
<<set $vices.caldwell.predatorMirrors to []>>
<</if>>
<<if $vices.josh.ultTimer lte 0>>
<<set $vices.josh.predatorTarget to null>>
<</if>>
/* ============================================================
2. JADED TRAIT ASSIGNMENT (day 15+, untouched NPCs)
============================================================ */
<<set _eventsLog to []>>
<<if $gameDay gte 15>>
<<for _i to 0; _i lt $roster.length; _i++>>
<<set _c to $roster[_i]>>
<<set _isUntouched to (_c.stages.nathan === 0 && _c.stages.josh === 0 && _c.stages.jasper === 0 && _c.stages.caldwell === 0)>>
<<if _isUntouched and !_c.traits.includes("Jaded") and !_c.traits.includes("Wary")>>
<<run _c.traits.pushUnique("Jaded")>>
<<run _eventsLog.push("<div style='color:#888; margin-bottom:10px;'><strong>Closed Off:</strong> " + _c.name + " has withdrawn. She has stopped looking for connection and is now harder to reach.</div>")>>
<</if>>
<</for>>
<</if>>
/* ============================================================
3. WARY TRAIT ASSIGNMENT (day 20+, untouched and not Jaded)
============================================================ */
<<if $gameDay gte 20>>
<<for _i to 0; _i lt $roster.length; _i++>>
<<set _c to $roster[_i]>>
<<set _isUntouched to (_c.stages.nathan === 0 && _c.stages.josh === 0 && _c.stages.jasper === 0 && _c.stages.caldwell === 0)>>
<<if _isUntouched and !_c.traits.includes("Wary") and !_c.traits.includes("Jaded")>>
<<run _c.traits.pushUnique("Wary")>>
<<run _eventsLog.push("<div style='color: #ffaa00; margin-bottom:10px;'><strong>Suspicion:</strong> " + _c.name + " has become Wary. She senses a dark influence and is harder to find.</div>")>>
<</if>>
<</for>>
<</if>>
/* ============================================================
4. EXTRA ACTIONS RESET
============================================================ */
<<set $extraActions.nathan to $vices.nathan.slaves.length + $eclipseActionBonus.nathan>>
<<set $extraActions.josh to $eclipseActionBonus.josh>>
<<set $extraActions.jasper to $eclipseActionBonus.jasper>>
<<set $extraActions.caldwell to $eclipseActionBonus.caldwell>>
/* ============================================================
5. SYSTEM SHIELD CLEANUP
============================================================ */
<<for _i to 0; _i lt $roster.length; _i++>>
<<if $roster[_i].shieldedBy === "SYSTEM">>
<<set $roster[_i].shieldTimer to 0>>
<<set $roster[_i].shieldedBy to null>>
<</if>>
<</for>>
/* ============================================================
6. GROUP ASSIGNMENT TIMERS
============================================================ */
<<set _newGroups to []>>
<<for _g range $groupAssignments>>
<<set _g.timer -= 1>>
<<if _g.timer gt 0>> <<run _newGroups.push(_g)>> <</if>>
<</for>>
<<set $groupAssignments to _newGroups>>
/* ============================================================
7. MIDNIGHT EVENT GENERATION (2–3 events per round)
FIX: <<while>> does not exist in SugarCube 2.
Replaced with <<for>> iterating up to the safety limit (50).
The <<break>> fires when we have enough events.
============================================================ */
<<set _activeMasters to ["nathan", "josh", "jasper", "caldwell"].filter(m => !$vices[m].isEliminated)>>
<<set _targetEventCount to either(2, 3)>>
<<set _eventPool to [5, 7, 8, 9, 10, 11]>>
<<set _possibleSenders to ["josh", "jasper", "caldwell"].filter(id => !$vices[id].isEliminated)>>
<<if _possibleSenders.length gte 1 and _activeMasters.length gte 2>>
<<run _eventPool.push(1)>>
<</if>>
<<if _activeMasters.length gte 1>> <<run _eventPool.push(2)>> <</if>>
<<run _eventPool.push(3)>>
<<run _eventPool.push(4)>>
<<run _eventPool.push(6)>>
<<for _mID range _activeMasters>>
<<if $vices[_mID].slaves.length gt 0>>
<<run _eventPool.push(12, 12, 12)>>
<<else>>
<<run _eventPool.push(12)>>
<</if>>
<</for>>
<<set _firedEventIDs to []>>
<<for _safetyCounter to 0; _safetyCounter lt 50; _safetyCounter++>>
<<if _eventsLog.length gte _targetEventCount>> <<break>> <</if>>
<<set _eID to _eventPool.random()>>
<<if _firedEventIDs.includes(_eID)>> <<continue>> <</if>>
<<set _mID to _activeMasters.random()>>
<<set _newEntry to "">>
<<include "Midnight_Events">>
<<if _newEntry !== "">>
<<run _eventsLog.push(_newEntry)>>
<<run _firedEventIDs.push(_eID)>>
<</if>>
<</for>>
/* ============================================================
8. KANE'S QUEST — announce, resolve, expire
============================================================ */
<<set _forcePlayerKaneReward to false>>
<<if $kaneQuest.active and $kaneQuest.winner === null and $gameDay gt $kaneQuest.deadline>>
/* The race expired with no winner — Kane moves on. */
<<set $kaneQuest.active to false>>
<<set $kaneQuest.npcId to null>>
<<run _eventsLog.push("<div style='color:#888; margin-bottom:10px;'><strong>Quest Expired:</strong> Director Kane grows bored and withdraws the challenge.</div>")>>
<<elseif $kaneQuest.winner !== null and !$kaneQuest.rewardClaimed and $kaneQuest.winner !== $playerID>>
/* A CPU won — auto-resolve the reward now, and offer the player
a watchable scene for the prize. */
<<set _rGirl to setup.questAutoPick($kaneQuest.winner)>>
<<if _rGirl>>
<<run setup.questApplyReward($kaneQuest.winner, _rGirl.id)>>
<<set _rewScene to setup.sceneFor($vices[$kaneQuest.winner].name, _rGirl, $kaneQuest.winner)>>
<<if not Story.has(_rewScene)>> <<set _rewScene to $vices[$kaneQuest.winner].name + "_Generic">> <</if>>
<<set $kaneQuest.rewardScenePending to _rewScene>>
<<run _eventsLog.push("<div style='color:#ffcc00; margin-bottom:10px;'><strong>Kane's Quest Won:</strong> " + $vices[$kaneQuest.winner].name + " chose " + _rGirl.name + " according to his current <em>" + $vices[$kaneQuest.winner].strategy + "</em> strategy. She ascends, and his Resonance surges to 100%.</div>")>>
<<else>>
/* No stage reward is possible. Preserve the Resonance half. */
<<set $vices[$kaneQuest.winner].gauge to 100>>
<<run _eventsLog.push("<div style='color:#ffcc00; margin-bottom:10px;'><strong>Kane's Quest Won:</strong> No eligible subject remained, so " + $vices[$kaneQuest.winner].name + " receives 100% Resonance only.</div>")>>
<</if>>
<<set $kaneQuest.rewardClaimed to true>>
<<elseif $kaneQuest.winner === $playerID and !$kaneQuest.rewardClaimed>>
/* Human winner: force the reward choice from this recap whenever
at least one girl can receive the stage. */
<<set _playerRewardOptions to setup.questRewardEligible($playerID)>>
<<if _playerRewardOptions.length gt 0>>
<<set _forcePlayerKaneReward to true>>
<<run _eventsLog.push("<div style='border:2px solid #ffcc00; padding:10px; margin-bottom:10px; background:#1a1400;'><strong style='color:#ffcc00;'>KANE'S QUEST WON:</strong> You must claim your reward before the next day begins.</div>")>>
<<else>>
/* The requested fallback: Resonance only, then continue. */
<<set $vices[$playerID].gauge to 100>>
<<set $kaneQuest.rewardClaimed to true>>
<<run _eventsLog.push("<div style='color:#ffcc00; margin-bottom:10px;'><strong>Kane's Quest Won:</strong> No eligible subject remains. Your Resonance has been set to 100%.</div>")>>
<</if>>
/* New challenges are checked at each eligible Eclipse interval after
the first. They fire 75% of the time, but only when questPickTarget
finds a girl with no owner and zero stages for every Vice. */
<<elseif !$kaneQuest.active and $firstEclipseDone and ($kaneQuest.winner === null or $kaneQuest.rewardClaimed) and ($gameDay - 1) % 5 === 0 and Math.random() lt 0.75>>
<<set _qTarget to setup.questPickTarget()>>
<<if _qTarget>>
<<set $kaneQuest to { active: true, npcId: _qTarget.id, startDay: $gameDay, deadline: $gameDay + 4, winner: null, rewardClaimed: false, rewardGirlId: null, rewardScenePending: null }>>
/* Kane's Mark is permanent: a quest target can never be
Eternal Anchored, even after the quest fully resolves. */
<<set _qTarget.kaneMarked to true>>
/* Everyone races the marked girl — refresh all AIs' strategies now */
<<for _qm range ["nathan", "josh", "jasper", "caldwell"]>>
<<if !$vices[_qm].isEliminated>> <<run setup.updateStrategy(_qm)>> <</if>>
<</for>>
<<run _eventsLog.push("<div style='border:1px solid #ffcc00; padding:10px; margin-bottom:10px; background:#1a1400;'><strong style='color:#ffcc00;'>KANE'S QUEST:</strong> The Director has issued a race. First to fully claim <strong style='color:#fff;'>" + _qTarget.name + "</strong> wins the prize — a subject of their choosing and absolute Resonance.</div>")>>
<</if>>
<</if>>
/* ============================================================
9. DAY ADVANCE
============================================================ */
<<if $groupEventMaster === null>>
<<set $gameDay += 1>>
<<set $joshStealUsedToday to false>>
<<set $activeTurn to "none">>
<</if>>
<</silently>>
<h1 style="text-align:center; color: #fff; text-shadow: 0 0 10px #ff66cc;">MIDNIGHT ECHOES</h1>
<div class="narrative" style="border: 2px solid #444; padding: 20px; background: #0a0a0a; line-height: 1.6;">
<<for _entry range _eventsLog>>
<<print _entry>>
<</for>>
<div style="text-align: center; margin-top: 30px;">
<<if _forcePlayerKaneReward>>
<p style="color:#ffcc00; font-weight:bold;">Director Kane is waiting. The next day cannot begin until you choose the prize.</p>
<<link "CLAIM KANE'S REWARD">>
<<set $kaneRewardWatched to true>>
<<set $kaneRewardReturnPassage to ($groupEventMaster !== null ? "MinorEvent_Scene" : (($gameDay - 1) % 5 === 0 ? "Eclipse_Event" : "EndTurnLogic"))>>
<<goto "KaneQuestReward">>
<</link>>
<<else>>
<<if $kaneQuest.rewardScenePending>>
/* The reward scene must be witnessed before anything else
(eclipse, mass resonance, or the next day) may begin. */
<p style="color:#ffcc00; font-weight:bold;">The prize must be witnessed before the night moves on.</p>
<<link "Watch the Reward Scene">>
<<set $targetNPC to $roster.find(c => c.id === $kaneQuest.rewardGirlId)>>
<<set $sceneMasterOverride to $kaneQuest.winner>>
<<set $activeTurn to $kaneQuest.winner>>
<<set $actionsTaken to 99>>
<<set $kaneRewardWatched to true>>
<<set $kaneRewardReturnPassage to ($groupEventMaster !== null ? "MinorEvent_Scene" : (($gameDay - 1) % 5 === 0 ? "Eclipse_Event" : "EndTurnLogic"))>>
<<set _rs to $kaneQuest.rewardScenePending>>
<<set $kaneQuest.rewardScenePending to null>>
<<goto _rs>>
<</link>>
<<else>>
<<if $groupEventMaster !== null>>
<<link "Observe Mass Resonance" "MinorEvent_Scene">><</link>>
<<elseif ($gameDay - 1) % 5 === 0>>
[[THE SKY TURNS DARK...|Eclipse_Event]]
<<else>>
[[Awaken to the next day |EndTurnLogic]]
<</if>>
<</if>>
<</if>>
</div>
</div><<silently>>
/* Old saves made before chain tracking existed may reach a chain hop
with no $chainVisited — default it to an empty list. */
<<if not $chainVisited>> <<set $chainVisited to []>> <</if>>
/* Predator's Rush steal: if Josh hijacked this chain, he is the actor.
Otherwise the active turn master acts as normal. */
<<set _chainMaster to ($chainMasterOverride ? $chainMasterOverride : $activeTurn)>>
/* True when Josh's Predator's Rush hijacked this chain — the log below
must say WHY the acting master is Josh. */
<<set _chainStolen to ($chainMasterOverride ? true : false)>>
<<set _actor to $vices[_chainMaster]>>
<<set _isSocialPandemic to (_actor.ultType === "social_pandemic" or (_chainMaster === "caldwell" and $vices.caldwell.channelUlt === "social_pandemic"))>>
<<set _chainID to $chainTarget.id>>
<<set _rIdx to $roster.findIndex(c => c.id === _chainID)>>
/* Apply the chain stage. Ownership only changes on a full conquest. */
<<set _oldOwner to leadingRival($roster[_rIdx], _chainMaster)>>
<<set $roster[_rIdx].stages[_chainMaster] += 1>>
<<if $roster[_rIdx].stages[_chainMaster] gte 3>> <<set $roster[_rIdx].owner to _chainMaster>> <</if>>
/* Wary → Invested transition on chain hit */
<<if $roster[_rIdx].traits.includes("Wary") && $roster[_rIdx].stages[_chainMaster] === 1>>
<<set _wIdx to $roster[_rIdx].traits.indexOf("Wary")>>
<<if _wIdx gte 0>> <<run $roster[_rIdx].traits.splice(_wIdx, 1)>> <</if>>
<<run $roster[_rIdx].traits.pushUnique("Invested")>>
<</if>>
<<set $targetNPC to $roster[_rIdx]>>
/* Kane's Quest — a chain completing the marked girl wins the race */
<<if $kaneQuest.active and $targetNPC.id === $kaneQuest.npcId and $targetNPC.stages[_chainMaster] gte 3>>
<<set $kaneQuest.active to false>>
<<set $kaneQuest.winner to _chainMaster>>
<</if>>
<<set $chainTarget to null>>
/* Grudge on chain steal (most-invested rival, captured before the write) */
<<if _oldOwner !== null && _oldOwner !== _chainMaster>>
<<set $vices[_oldOwner].grudge to _chainMaster>>
<<set $vices[_oldOwner].grudgeTimer to 3>>
<<run setup.updateStrategy(_oldOwner)>>
<</if>>
/* Revenge triggers
FIX: was checking $targetNPC.keyTo which does not exist.
Now checks whether the NPC is in a rival's keys array. */
<<for _vID2 range ["nathan", "josh", "jasper", "caldwell"]>>
<<if _vID2 !== _chainMaster && !$vices[_vID2].isEliminated>>
<<if $vices[_vID2].keys.includes($targetNPC.id)>>
<<set $vices[_vID2].revengeAgainst to _chainMaster>>
<<elseif $targetNPC.stages[_vID2] gt 0 and Math.random() lt 0.25>>
<<set $vices[_vID2].revengeAgainst to _chainMaster>>
<</if>>
<</if>>
<</for>>
/* Gauge gain for chain */
<<run adjustGauge(_chainMaster, 10)>>
/* Clear revenge if resolved */
<<if _actor.revengeAgainst === $targetNPC.owner>>
<<set _actor.revengeAgainst to null>>
<</if>>
/* --------------------------------------------------------
SHAMELESS: Secondary chain targeting
If the chain source ($targetNPC after stage update) has
Shameless, try to target a rival's owned NPC from her
social circle. Falls back to random friends if none found.
Also respects Empty Vessel and Jaded exclusions.
-------------------------------------------------------- */
<<set _chainFriends to $socialMap[$targetNPC.id] || []>>
/* One SHAMELESS secondary chain per vice turn (no spam) */
<<if $targetNPC.traits.includes("Shameless") and !$shamelessFired>>
/* Prefer rivals' girls in her social circle */
<<set _rivalPool to $roster.filter(function(c) {
if (!_chainFriends.includes(c.id)) return false;
if (c.id === $targetNPC.id) return false;
if ($chainVisited && $chainVisited.includes(c.id)) return false;
if (Object.values(c.stages).some(s => s >= 3)) return false;
if (c.traits.includes("Empty Vessel")) return false;
if (c.traits.includes("Jaded") && !_isSocialPandemic) return false;
return ["nathan", "josh", "jasper", "caldwell"].some(id => id !== _chainMaster and c.stages[id] gt 0);
})>>
<<if _rivalPool.length gt 0>>
<<set $chainTarget to _rivalPool.random()>>
<<run $chainVisited.pushUnique($chainTarget.id)>>
<<else>>
/* Fallback: any valid friend */
<<set _anyPool to $roster.filter(function(c) {
if (!_chainFriends.includes(c.id)) return false;
if (c.id === $targetNPC.id) return false;
if ($chainVisited && $chainVisited.includes(c.id)) return false;
if (Object.values(c.stages).some(s => s >= 3)) return false;
if (c.traits.includes("Empty Vessel")) return false;
if (c.traits.includes("Jaded") && !_isSocialPandemic) return false;
return true;
})>>
<<if _anyPool.length gt 0>>
<<set $chainTarget to _anyPool.random()>>
<<run $chainVisited.pushUnique($chainTarget.id)>>
<</if>>
<</if>>
<</if>>
/* Mark the SHAMELESS chain as fired so it only happens once per turn */
<<if $chainTarget !== null>> <<set $shamelessFired to true>> <</if>>
/* Scene resolution for the chain target */
<<set $sceneToLoad to setup.sceneFor(_actor.name, $targetNPC, _chainMaster)>>
<<if not Story.has($sceneToLoad)>>
<<set $sceneToLoad to _actor.name + "_Generic">>
<</if>>
/* If Josh stole this chain, the chain scene must show Josh's videos.
Otherwise clear any leftover override. In both cases the flag is
reset so later scenes fall back to the active turn. */
<<if $chainMasterOverride>>
<<set $sceneMasterOverride to "josh">>
<<set $chainMasterOverride to null>>
<<else>>
<<set $sceneMasterOverride to null>>
<</if>>
<</silently>>\
<h1>Day $gameDay — Turn: <<print _actor.name>> [CHAIN REACTION]</h1>
<div class="cpu-log" style="border: 1px solid #ff66cc; padding: 20px; background: #110011; font-family: monospace; color: #ff66cc; line-height: 1.5;">
<p>[CHAIN REACTION]: The resonance spreads to <<print $targetNPC.name>>!</p>
<<if _chainStolen>>
<p style="color: #ff33cc;">[PREDATOR'S RUSH]: Josh's mark claims the chain as well — this spread is his, not yours.</p>
<</if>>
<p>[AUTOMATIC SUCCESS — Stage <<print $targetNPC.stages[_chainMaster]>>]</p>
<<if $targetNPC.traits.includes("Shameless") && $chainTarget !== null>>
<p style="color: #ff33cc;">[SHAMELESS]: She's already reaching out to <<print $chainTarget.name>>...</p>
<</if>>
<br><<link "Watch Chain Interaction" $sceneToLoad>><</link>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The living room was a silent battlefield. The world-map mural on the wall seemed to mock the smallness of their world. Elsa entered, holding a small paper bag, a peace offering in a war that never ended.
<img src="img/Elsa/Normal.jpg">
<<speech "Elsa">> "Hey." <</speech>> Her voice was gentle, a careful step on a minefield. <<speech "Elsa">> "Hazel came by. She didn't want to bother you. She left this." <</speech>> She placed the bag on the coffee table. <<speech "Elsa">> "She still checks on you, even when you don't answer. She hasn't given up on you." <</speech>>
The name, the sentiment, the implication of a conspiracy of care—it was gasoline on Josh's ever-burning anger. He didn't turn around, his voice a low growl.
<<speech "Josh">> "Don't. Don't talk about her. Don't talk about me. What is this, your daily report? 'Subject is still breathing. Still a failure. Still needs managing.'" <</speech>>
<<speech "Elsa">> "God, Josh, why do you do that? Why do you have to turn everything into an attack?" <</speech>> Her frustration, sharp and familiar, cut through her caution. <<speech "Elsa">> "She's your friend! I'm your $relation! We're the only ones who haven't walked away, and all you do is punish us for it!" <</speech>>
<<speech "Josh">> "Punish you?" <</speech>> He finally spun around, his eyes burning with a volatile mix of rage and wounded pride. <<speech "Josh">> "You smother me! You 'guide' me! You look at me like I'm a project that went wrong! You're not my $relation, you're my fucking case manager!" <</speech>>
They were face to face, inches apart, screaming. The air crackled. Their eyes locked, and in that moment of pure, unfiltered hatred, the power inside Josh—the raw, untamed Lust he'd gotten from Selene—erupted. It wasn't a choice; it was a sneeze, a pressure valve blowing. A wave of pure, physical energy, hot and greasy, blasted from him and hit Elsa like a physical force.
The effect was instantaneous and grotesque.
Elsa's angry tirade choked off into a wet, strangled gasp. Her body seized, her back arching violently as if electrocuted. A deep, scarlet flush bloomed across her chest and neck. Her hands flew to her throat, not in protest, but in a confused, clawing gesture. Her knees buckled, and she dropped to the floor with a thud, a desperate, whimpering sound escaping her lips.
<<speech "Elsa">> "Josh... wh-what... what did you...?" <</speech>> Her voice was a ragged, terrified whisper. Her wide blue eyes were no longer filled with anger, but with a horrifying, primal confusion. She looked at him, her $malerel, and her body reacted with a betrayal so profound it was sickening. A liquid heat pooled between her legs, her nipples pebbled into painful, aching points. The need—the desperate, animalistic need to be touched, to be filled, to be fucked by the man in front of her—was a fire that incinerated every thought of being his $relation.
For a single, clear moment, Josh was terrified. He saw what he had done. The regret was a cold spike in his gut. He could run. He could call an ambulance. He could fall to his knees and beg for forgiveness.
Instead, the shame curdled. The regret was a weakness he refused to own. He had already ruined her; what was one more step into the abyss?
<<speech "Josh">> "Get up." <</speech>> His voice was cold, flat, utterly devoid of the rage from moments before. It was the voice of a man who had just discovered a new, terrible power.
<<speech "Elsa">> "I... I can't... it's... it burns..." <</speech>> She was panting, her hands clutching her stomach, her body trembling. She looked up at him, her face a mask of terrified need.
<<speech "Josh">> "I said get up." <</speech>> He grabbed her arm, yanking her to her feet. <<speech "Josh">> "Go to your room. Take off that... that 'concerned older $relation' costume. I want to see what's underneath." <</speech>>
He followed her, watching her stumble into her room like a newborn foal. He watched as she mechanically stripped off her jeans and top, her hands shaking so badly she could barely manage the buttons. He pointed to the hot-pink crop top and purple panties lying on her dresser. <<speech "Josh">> "Wear that." <</speech>>
<img src="img/Elsa/Corr2.jpg">
When she came out, dressed in the revealing lingerie, she looked like a parody of herself. He circled her, a predator inspecting his prey.
<<speech "Josh">> "Not good enough." <</speech>> He hooked a finger into the strap of her top and pulled it down. <<speech "Josh">> "Take it all off. I don't want to see her. I want to see what I made." <</speech>>
He led her back to the living room, to the bright white sectional sofa. He pushed her down.
<<speech "Josh">> "Pose for me." <</speech>>
<video src="img/Elsa/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She complied, her movements wooden, her face a canvas of horror and need. He sat opposite her, watching the show. The Lust Bomb still raged inside her, a fire with no source of extinguishment. Her body took over, her hands sliding down her stomach, her legs falling open. She looked at him, her eyes pleading.
<<speech "Elsa">> "Josh... please... make it stop... it hurts so much... please, just... touch me..." <</speech>> Her voice was a broken, desperate whine. She began to touch herself, her fingers finding her clit, rubbing frantically, trying to find any relief from the torment he had unleashed. Tears streamed down her cheeks as she masturbated for her $malerel, her body betraying what was left of her mind.
<video src="img/Elsa/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 2>>
A fragile, traumatized version of Elsa tried to salvage the wreckage. She found Josh on the covered patio, the morning air doing nothing to cool the fever in her blood. She had to try. She had to be his $relation.
<img src="img/Elsa/Corr1.jpg">
<<speech "Elsa">> "Josh... we need to talk about the other day. What you did... what happened to me... that wasn't you. We can fix this. You can't let that... that thing... control you." <</speech>>
Her attempt to reclaim her role, to be the wise, guiding older $relation, was the ultimate trigger. It was the one role he was determined to burn to the ground.
<<speech "Josh">> "Fix it? 'Fix it'?" <</speech>> He laughed, a harsh, ugly sound. <<speech "Josh">> "There's nothing to fix, Elsa. This is just an upgrade. You're finally being useful." <</speech>>
He stared at her, and this time, the Lust was a weapon, aimed and fired with deliberate cruelty. A second, more focused blast of power hit her square in the chest.
<<speech "Elsa">> "N-no... no, not again..." <</speech>> She whimpered, her legs giving out. She collapsed to her knees on the patio tiles, the coherent $relation shredded into useless fragments. The memories of her friends and Lily, of her love for him, of her entire life, were still there, but they were now just disconnected images in a hurricane of need.
<<speech "Josh">> "You wanted to talk, Elsa? Let's talk." <</speech>> He grabbed her hair, tilting her head back. <<speech "Josh">> "Open your fucking mouth. That's all it's good for now." <</speech>>
He was on her in an instant, his cock out, shoving it past her lips. He fucked her face with brutal, angry thrusts, using her mouth to silence the part of him that still felt a flicker of regret. She was topless, wearing only a dark choker and a scrap of red mesh, a pathetic, debased version of the woman who had tried to save him. Her tears flowed freely, but her body submitted, her programming overriding the fragmented screams of her mind.
<video src="img/Elsa/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He dragged her, stumbling and compliant, to the outdoor bed with the grey sheets. He pushed her down and loomed over her.
<<speech "Josh">> "You still love me, Elsa? Huh? You still worried about me?" <</speech>> He taunted her, his voice dripping with acid. <<speech "Josh">> "Show me how much. Open up." <</speech>>
He didn't wait for a response that wasn't coming. He stroked himself, aiming at her vacant, upturned face. Thick ropes of cum landed across her outstretched tongue and her lips, dripping down her chin in a humiliating display.
<video src="img/Elsa/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "You wanted to help me, Elsa? To take care of me?" <</speech>> He shoved his still-hard cock back into her mouth, smearing his own cum across her face. <<speech "Josh">> "Clean it up. Every last drop. Swallow it. That's all your good fucking for now." <</speech>>
Elsa's body complied instantly. Her lips sealed around him, her tongue working to clean every trace of his release, her throat swallowing mechanically. The fragmented part of her mind that was still his $relation screamed in silent, suffocating agony, but her programmed need for his seed was a stronger, more immediate command. She was a broken toy, performing its last, degrading function.
<<elseif _s is 3>>
The coherent older $relation was not just gone; she was an archaeologic ruin buried under layers of compulsion. What walked through the house now was a ghost in Elsa's skin, a creature of fragmented memories and overwhelming, programmed need. She was no longer capable of speech, only of pathetic, whimpering sounds that were a parody of language. She found Josh in the bright room of the house, not by choice, but by the magnetic pull of the curse inside her.
<img src="img/Elsa/Corr1.jpg">
She wore only the black lace garter stockings and matching waistband he had left for her, a uniform for her new purpose. She stood in the doorway, trembling, her eyes fixed on him with a terrifying, animalistic pleading. She didn't speak. She simply took a shaky step toward him, then another, her hands clasped in front of her as if in prayer.
Josh looked up from his chair, a slow, cruel smile spreading across his face. He let her approach, let her stand there, vibrating with need, a monument to his victory.
<<speech "Josh">> "Look at you. Can't even form a fucking word anymore." <</speech>> He stood up, circling her like a shark. <<speech "Josh">> "What's the matter, Elsa? Cat got your tongue? Or are you just... hungry?" <</speech>>
He trailed a finger down her arm, and she shuddered violently, a choked sob escaping her throat.
<<speech "Elsa">> "J-Josh... p-please... h-hurts... make it... stop..." <</speech>> The words were broken, barely intelligible, a desperate plea from the prison of her mind.
<<speech "Josh">> "Oh, I'll make it stop." <</speech>> He chuckled, a low, menacing sound. <<speech "Josh">> "For a little while. But first, you have to tell me what you want. Use your big girl words." <</speech>> He stood in front of her, his crotch inches from her face. <<speech "Josh">> "Do you want my help, Elsa? Do you want my... seed?" <</speech>>
The word was a trigger. Her entire body convulsed. A fresh wave of need, sharp and agonizing, washed over her. Tears streamed down her cheeks as she sank to her knees, her hands reaching for him.
<<speech "Elsa">> "Y-yes... please... yes... need... need it..." <</speech>> It was a chant, a mindless prayer.
<<speech "Josh">> "Beg for it." <</speech>> His voice was cold steel. <<speech "Josh">> "Beg me to fuck you, $relation. Beg me to fill you up like the dirty little cum-dump you are." <</speech>>
The humiliation was a new layer of torment, but her body had no defense. She crawled forward, pressing her face against his thigh.
<<speech "Elsa">> "Please... Josh... fuck me... please... fill me... need your... seed..." <</speech>> The words were torn from her throat, each one a fresh death of the $relation she had been.
He let her beg for another full minute, her broken pleas music to his ears. Then, he grabbed her, lifting her effortlessly. He sat down on the edge of the bed and forced her to straddle him, his cock pressing against her soaked entrance. He didn't enter her. He just held her there, letting her squirm.
<<speech "Josh">> "Say it again. Tell me you're my worthless $relation whore who lives for my cum." <</speech>>
<<speech "Elsa">> "I'm... I'm your... whore... please... just... give it to me..." <</speech>> She was sobbing, her body trying to impale itself on him, but he held her fast.
Finally, with a cruel laugh, he let go. She slammed down onto him, his cock burying itself deep inside her. A guttural scream of pure, agonized relief tore from her lungs. He let her ride him, his hands gripping her ass, spreading her open as she bounced frantically, desperately.
<<speech "Josh">> "That's it. Take it. Take what I give you." <</speech>> He grunted, his voice a mix of contempt and a strange, possessive pride. <<speech "Josh">> "This is all you're good for now. This is the only help you can give me." <</speech>>
She responded with incoherent whimpers and moans, her head thrown back, her body a puppet dancing on his strings. The memories of being his protector were like ghosts flickering at the edge of her vision, powerless against the raw, animalistic need that had consumed her.
<video src="img/Elsa/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
After he'd had his fill of watching her degrade herself for him, he shoved her off him. She collapsed onto the floor like a discarded doll. He grabbed her, flipping her over onto her hands and knees on the white modern sofa. He took her from behind, his thrusts hard and punishing, each one a reminder of his ownership.
<<speech "Josh">> "You feel that? That's what you were made for. Not to talk down to me. Not to 'fix' me. To be a warm, tight hole for me to fuck whenever I want." <</speech>>
He could feel her tightening around him, her body instinctively trying to milk him for the release she craved.
<<speech "Josh">> "You want it, don't you? You want my cum? You want me to fill this worthless pussy up? Beg again." <</speech>>
<<speech "Elsa">> "Please! Please, Josh! Fill me! Give me your seed! Please!" <</speech>> The words were a frantic, high-pitched scream.
He withdrew abruptly, leaving her empty and quivering. He spread her ass cheeks wide with his hands, admiring his handiwork, the sight of her gaping, used-up body a final, ultimate victory over the $relation who had tried to control him.
<<speech "Josh">> "Stay just like that. Don't move." <</speech>>
He stroked himself, and a moment later, he finished across her lower back and ass, a warm, degrading confirmation of her new reality. He didn't say anything else. He just watched his cum drip down her skin, a silent testament to the fact that he had finally, completely, won.
<video src="img/Elsa/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><<nobr>>
<h2>Vice Shield — Select Target (50% Gauge)</h2>
<p>Choose one of your subjects (Stage 1–2) to hide from rivals for <strong>3 turns</strong> <span style="font-size:0.85em; color:#666;">(click a name to open her file)</span>:</p>
<<silently>>
<<set _player to $vices[$playerID]>>
<<set _myGirls to $roster.filter(function(c) {
return c.stages[$playerID] gt 0
&& c.stages[$playerID] lt 3
&& c.shieldTimer === 0
&& !Object.values(c.stages).some(function(s) { return s >= 3; });
})>>
<</silently>>
<div style="padding: 20px;">
<<if _myGirls.length is 0>>
<p style="color: #888;">No subjects available to shield right now.</p>
<p style="font-size: 0.85em; color: #555;">(Either all your subjects are at max stage, already shielded, or you have none yet.)</p>
[[Back|Hub]]
<<else>>
<<for _i to 0; _i lt _myGirls.length; _i++>>
<<set _g to _myGirls[_i]>>
<<capture _g>>
<<set _shieldLabel to "Shield " + _g.name + " (Stage " + _g.stages[$playerID] + "/3)">>
<<link _shieldLabel>>
<<set _g.shieldTimer to 3>>
<<set _g.shieldedBy to $playerID>>
<<run adjustGauge($playerID, -50)>>
<<goto "Hub">>
<</link>>
<<link "(file)">><<run setup.openSubjectFile(_g.id)>><</link>>
<br>
<</capture>>
<</for>>
<br>
[[Cancel|Hub]]
<</if>>
</div>
<</nobr>><<nobr>>
<h2>Revenge Scent — Curse a Rival (50% Gauge)</h2>
<p>Choose a rival to curse. On their next conquest attempt, their multiplier is weakened:</p>
<<silently>>
<<set _player to $vices[$playerID]>>
<<set _rivals to ["nathan", "josh", "jasper", "caldwell"].filter(id => id !== $playerID && !$vices[id].isEliminated)>>
<</silently>>
<div style="padding: 20px;">
<<if _rivals.length is 0>>
<p>No rivals available to curse.</p>
[[Back|Hub]]
<<else>>
<<for _i to 0; _i lt _rivals.length; _i++>>
<<set _rID to _rivals[_i]>>
<<capture _rID>>
<<if $vices[_rID].revengeScented>>
<p style="color: #888;"><<print $vices[_rID].name>> — <em>already cursed</em></p>
<<else>>
<<set _curseLabel to "Curse " + $vices[_rID].name>>
<<link _curseLabel>>
<<set $vices[_rID].revengeScented to true>>
<<run adjustGauge($playerID, -50)>>
<<goto "Hub">>
<</link>>
<</if>>
<br><br>
<</capture>>
<</for>>
<br>
[[Cancel|Hub]]
<</if>>
</div>
<</nobr>><<silently>>
<<set _player to ($vices[$playerID] ? $vices[$playerID] : null)>>
<<set _canPayUltimate to (_player !== null and _player.gauge gte 100)>>
<</silently>>\
<<if !_canPayUltimate>>
<h3 style="color:#888;">ULTIMATE UNAVAILABLE</h3>
<p>You no longer have the 100% Resonance required to activate this power.</p>
[[Return to Hub|Hub]]
/* ============================================================
NATHAN — Social Pandemic
No target selection: activation is committed on entry.
============================================================ */
<<elseif $playerID === "nathan">>
<<silently>>
<<run adjustGauge("nathan", -100)>>
<<set _player.ultType to "social_pandemic">>
<<set _player.ultTimer to 3>>
/* Author ruling (unified ult cost): an ultimate uses one action. */
<<set $actionsTaken += 1>>
<</silently>>
<h3 style="color:#ff0066;">SOCIAL PANDEMIC ACTIVATED</h3>
<p>For the next three Nathan turns, every successful conquest guarantees a chain reaction when an eligible friend exists.</p>
<br>[[Continue|Hub]]
/* ============================================================
JOSH — Predator's Rush
Gauge and state commit only after a rival is selected.
============================================================ */
<<elseif $playerID === "josh">>
<<set _rivals to ["nathan", "jasper", "caldwell"].filter(id => !$vices[id].isEliminated)>>
<h3 style="color:#ff0066;">PREDATOR'S RUSH — SELECT PREY</h3>
<p>Mark an active rival. For the next two of that rival's turns, Josh steals each eligible successful conquest and any resulting chain. Marking the same rival as the previous hunt lasts only <strong>one</strong> of their turns.</p>
<<if _rivals.length is 0>>
<p style="color:#888;">No valid rival remains. No Resonance has been spent.</p>
<<else>>
<<for _i to 0; _i lt _rivals.length; _i++>>
<<set _rID to _rivals[_i]>>
<<capture _rID>>
<<set _markLabel to "Mark " + $vices[_rID].name>>
<<link _markLabel>>
<<if $vices.josh.gauge gte 100>>
<<run adjustGauge("josh", -100)>>
<<set $vices.josh.ultType to "predators_rush">>
/* Re-marking the previous hunt's rival: one turn, not two. */
<<set $vices.josh.ultTimer to ($vices.josh.predatorTarget === _rID ? 1 : 2)>>
<<set $vices.josh.predatorStealsThisTurn to 0>>
<<set $vices.josh.predatorMirrors to []>>
<<set $vices.josh.predatorTarget to _rID>>
<<set $vices.josh.ultTargetName to $vices[_rID].name>>
<<set $actionsTaken += 1>>
<</if>>
<<goto "Hub">>
<</link>><br><br>
<</capture>>
<</for>>
<</if>>
[[Cancel Without Spending|Hub]]
/* ============================================================
JASPER — Eclipse Silence
Gauge and state commit only after a rival is selected.
============================================================ */
<<elseif $playerID === "jasper">>
<<set _alreadySilenced to ["nathan", "josh", "caldwell"].some(id => $vices[id].silencedBy === "jasper")>>
<<if _alreadySilenced>>
<h3 style="color:#888;">ECLIPSE SILENCE ALREADY ACTIVE</h3>
<p>Jasper cannot bind another rival until his current silence ends. No Resonance has been spent.</p>
<<else>>
<<set _silenceDuration to 2>>
<<set _rivals to ["nathan", "josh", "caldwell"].filter(id => !$vices[id].isEliminated and $vices[id].silencedBy === null)>>
<h3 style="color:#ff0066;">ECLIPSE SILENCE — SELECT RIVAL</h3>
<p>Choose an active rival to suppress for <strong>two turns</strong>. Silencing the same rival as the previous silence lasts only <strong>one</strong> turn.</p>
<<if _rivals.length is 0>>
<p style="color:#888;">No valid rival remains. No Resonance has been spent.</p>
<<else>>
<<for _i to 0; _i lt _rivals.length; _i++>>
<<set _rID to _rivals[_i]>>
<<capture _rID _silenceDuration>>
<<set _silenceLabel to "Silence " + $vices[_rID].name>>
<<link _silenceLabel>>
<<if $vices.jasper.gauge gte 100>>
<<run adjustGauge("jasper", -100)>>
<<set $vices.jasper.ultType to "eclipse_silence">>
/* Re-silencing the previous silence's rival: one turn, not two. */
<<set _dur to ($vices.jasper.lastSilenceTarget === _rID ? 1 : _silenceDuration)>>
<<set $vices.jasper.ultTimer to _dur>>
<<set $vices[_rID].silencedBy to "jasper">>
<<set $vices[_rID].silencedTimer to _dur>>
<<set $vices.jasper.lastSilenceTarget to _rID>>
<<set $vices.jasper.ultTargetName to $vices[_rID].name>>
<<set $actionsTaken += 1>>
<</if>>
<<goto "Hub">>
<</link>><br><br>
<</capture>>
<</for>>
<</if>>
<</if>>
[[Cancel Without Spending|Hub]]
/* ============================================================
CALDWELL — Eternal Anchor
The Hub links directly to target selection. This fallback page is
intentionally stable so browser Back cannot bounce through an
automatic redirect loop.
============================================================ */
<<elseif $playerID === "caldwell">>
<<if $vices.caldwell.ultTimer gt 0>>
<h3 style="color:#888;">ULTIMATE RECHARGING</h3>
<p>The previous ultimate still resonates through the campus. The Eternal Anchor and every channeled ultimate share one power slot — the next cast is available in <<print $vices.caldwell.ultTimer>> day<<if $vices.caldwell.ultTimer gt 1>>s<</if>>. No Resonance has been spent.</p>
[[Return to Hub|Hub]]
<<else>>
<h3 style="color:#ff0066;">ETERNAL ANCHOR READY</h3>
<p>Resonance will be spent only after you select and confirm a valid subject.</p>
[[Choose Anchor Target|Caldwell_AnchorSelect]]
<<if $vices.caldwell.slaves.length gt 0>>
<h3 style="color:#9c27b0; margin-top:26px;">CHANNELED ULTIMATES</h3>
<p>Through an enslaved Vice, Caldwell can wield <em>their</em> ultimate instead. Every cast shares the Anchor's one-day recharge.</p>
<<if $vices.caldwell.slaves.includes("josh")>>
<<set _rivals to ["nathan", "jasper"].filter(id => !$vices[id].isEliminated)>>
<p style="color:#ff33cc; margin-bottom:4px;">PREDATOR'S RUSH (via Josh) — mark a rival; for the next two of their turns, Caldwell steals their eligible conquests:</p>
<<for _i to 0; _i lt _rivals.length; _i++>>
<<set _rID to _rivals[_i]>>
<<capture _rID>>
<<set _markLabel to "Mark " + $vices[_rID].name + ($vices.caldwell.predatorTarget === _rID ? " (repeat: 1 turn)" : "")>>
<<link _markLabel>>
<<if $vices.caldwell.gauge gte 100>>
<<set _prevMark to $vices.caldwell.predatorTarget>>
<<run adjustGauge("caldwell", -100)>>
<<set $vices.caldwell.channelUlt to "predators_rush">>
<<set $vices.caldwell.predatorTarget to _rID>>
<<set $vices.caldwell.predatorStealsThisTurn to 0>>
<<set $vices.caldwell.predatorMirrors to []>>
<<set $vices.caldwell.channelTimer to (_prevMark === _rID ? 1 : 2)>>
<<set $vices.caldwell.ultTargetName to $vices[_rID].name>>
<<set $vices.caldwell.ultTimer to 2>>
<<set $actionsTaken += 1>>
<</if>>
<<goto "Hub">>
<</link>><br>
<</capture>>
<</for>>
<</if>>
<<if $vices.caldwell.slaves.includes("jasper")>>
<<set _caSilenced to ["nathan", "josh", "jasper"].some(id => $vices[id].silencedBy === "caldwell")>>
<<if _caSilenced>>
<p style="color:#888;">ECLIPSE SILENCE (via Jasper) — a rival is already suppressed; another cannot be bound yet.</p>
<<else>>
<<set _sRivals to ["nathan", "josh", "jasper"].filter(id => !$vices[id].isEliminated and $vices[id].silencedBy === null)>>
<p style="color:#00ffcc; margin-bottom:4px;">ECLIPSE SILENCE (via Jasper) — suppress a rival for two turns:</p>
<<for _i to 0; _i lt _sRivals.length; _i++>>
<<set _rID to _sRivals[_i]>>
<<capture _rID>>
<<set _silLabel to "Silence " + $vices[_rID].name>>
<<link _silLabel>>
<<if $vices.caldwell.gauge gte 100>>
<<run adjustGauge("caldwell", -100)>>
<<set $vices[_rID].silencedBy to "caldwell">>
<<set $vices[_rID].silencedTimer to 2>>
<<set $vices.caldwell.channelUlt to "eclipse_silence">>
<<set $vices.caldwell.channelTimer to 2>>
<<set $vices.caldwell.ultTargetName to $vices[_rID].name>>
<<set $vices.caldwell.ultTimer to 2>>
<<set $actionsTaken += 1>>
<</if>>
<<goto "Hub">>
<</link>><br>
<</capture>>
<</for>>
<</if>>
<</if>>
<<if $vices.caldwell.slaves.includes("nathan")>>
<p style="color:#ff0066; margin-bottom:4px;">SOCIAL PANDEMIC (via Nathan) — for Caldwell's next three turns, his first two conquests each turn guarantee their chain reactions (his Resonance gains are halved while it runs):</p>
<<link "Channel Social Pandemic">>
<<if $vices.caldwell.gauge gte 100>>
<<run adjustGauge("caldwell", -100)>>
<<set $vices.caldwell.channelUlt to "social_pandemic">>
<<set $vices.caldwell.channelTimer to 3>>
<<set $vices.caldwell.ultTimer to 2>>
<<set $actionsTaken += 1>>
<</if>>
<<goto "Hub">>
<</link>>
<</if>>
<</if>>
<br><br>[[Cancel Without Spending|Hub]]
<</if>>
<</if>><h1>Trust Influence: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The neon party pulsed with life, but for Elsa, the mood had soured. It was Gina's fault, really. With a flourish and a cackle, Gina had presented her with a small, gift-wrapped box. Inside, nestled in tissue paper, was a large, green jeweled butt plug. Kali had howled with laughter, even Jade had cracked a smile despite her disapproving "Gina, really?" and Elsa felt a hot blush creep up her neck and chest. She forced a smile, knowing Gina meant it as an outrageous joke, but the feeling of being the center of that particular kind of attention was mortifying.
<img src="img/Elsa/Normal.jpg">
Before she could stammer out a response, Jasper was there. He didn't laugh or tease. He just smoothly turned to Kali, asking about a band on her t-shirt, and just like that, the spotlight shifted, the moment diffused. He caught her eye as he moved away and gave her a small, kind smile of solidarity. It was a simple act, but it felt like a rescue.
Later, nursing a drink by a window, she found herself talking to him again. The embarrassment had faded, leaving behind the familiar ache of Josh's absence.
<<speech "Elsa">> "Thanks for earlier. With... you know." <</speech>> She gestured vaguely. <<speech "Elsa">> "And with you trying to befriend Josh. I don't even know why I care so much. It's just... when he's not here, or when he's in one of his moods, it's like I can't fully enjoy anything." <</speech>>
Jasper leaned against the wall beside her, his presence calm and grounding. As he spoke, he subtly adjusted the leather cord around his wrist, releasing a faint, almost imperceptible scent—warm, like sandalwood and clean linen. It was Thornfield's essence, a silent key to the mind.
<<speech "Jasper">> "He'll come around. He knows you haven't stopped loving him." <</speech>>
The words, so similar to what Nathan might say, landed differently. Wrapped in that gentle, calming scent, they didn't just sound true; they felt true. A profound sense of trust washed over her, so deep and absolute it was almost dizzying. The anxiety about Josh simply dissolved, replaced by a serene certainty. Jasper was safe. Jasper was kind. Jasper understood.
A new daring, fueled by the party and this newfound sense of security, took hold. She didn't want the night to end. She didn't want this feeling to end.
Back in the neon-lit photo room, the party felt a world away. The joke gift no longer felt humiliating; it felt like an opportunity. She wore only a sheer white thong under the shifting lights. Facing away from the camera, she bent over, a playful smile on her lips as she looked over her shoulder. Her hands pulled the thin fabric aside, spreading her cheeks to reveal the large green jeweled plug nestled securely inside. It was a secret, a spark of rebellion, a gift to a friend who had shown her unexpected kindness. She worked the plug deeper with her fingers, the gem glinting under the colored lights, the act both an exploration and a performance for the one person who had made her feel safe.
<video src="img/Elsa/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The party eventually wound down, but the connection didn't. Jasper had walked her home, their conversation easy and comfortable. Now, in the bright, sunlit living room of her house, the trust she felt for him had blossomed into a powerful, open desire. She lay completely nude on the large white leather sofa, her sneakers still on her feet, a last quirky remnant of the party. Jasper leaned over her, his dark skin a stark, beautiful contrast against her fair tone. One hand moved gently between her thighs, his fingers sliding in and out of her slick heat with a practiced, steady rhythm. His other hand was on her neck, his lips and tongue tracing a warm path along her collarbone. She arched into his touch, a soft sigh escaping her lips. This wasn't about the party anymore; this was about the quiet, undeniable certainty she felt with him.
<video src="img/Elsa/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 2>>
Elsa sent Jasper a text. She needed to know if what they had was real, or just a neon-lit, alcohol-fueled fantasy. She invited him over, specifically when she knew her roommates would be out. When he arrived, she led him to the brown leather couch in the den, the space more intimate and serious than the bright living room. She was nervous, but she was also determined.
<img src="img/Elsa/Corr1.jpg">
<<speech "Elsa">> "Hey. Thanks for coming." <</speech>> She sat, tucking her feet under her. <<speech "Elsa">> "I just... I needed to see if this... us... feels the same without the party and the... well, everything." <</speech>>
Jasper sat beside her, his expression warm and sincere. As he listened, he ran a hand through his hair, the subtle scent of his alchemical perfume once again filling the air, an invisible anchor of trust.
<<speech "Jasper">> "It feels the same to me, Elsa." <</speech>> His voice was low and gentle. <<speech "Jasper">> "Better, even. Because now it's just us." <</speech>>
The scent, the words, the sincerity—it was a combination that bypassed all her defenses. The last of her doubts melted away, replaced by a wave of affection so potent it left her feeling light-headed. She didn't need to question it. She just needed to feel it.
<img src="img/Elsa/Corr2.jpg">
She leaned in, kissing him deeply. His arms came around her, pulling her close. The kiss deepened, growing in intensity until clothes became a barrier they no longer wanted. She knelt on the couch before him, her long platinum-blonde hair cascading over her shoulders, the red rose tattoo on her hip a stark splash of color against her pale skin. She took his thick, dark cock into her mouth, her lips stretching around the shaft. She moved with a slow, wet devotion, her tongue exploring every inch of him, her eyes flicking upward to meet his gaze, wanting to see his pleasure. This was her choice, her confirmation, her way of showing him the trust he had so effortlessly earned.
<video src="img/Elsa/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
They moved from the couch to the cool, light tiles of the floor, the air thick with the heat of their passion. Elsa knelt before him, looking up with her wide blue eyes, her mouth open and her tongue extended, a portrait of utter devotion. Jasper stood over her, his hand gripping his cock as he guided it toward her waiting tongue. He came with a groan, thick ropes of it landing on her outstretched tongue and lips, dripping down her chin in sticky strands. She didn't flinch or pull away. She kept her eyes locked on his, her tongue pushing out to catch every drop, her expression eager and worshipful. When he was finished, she leaned forward, closing her lips around the head of his cock, sucking and licking him clean, her actions a silent promise of absolute trust and unwavering loyalty.
<video src="img/Elsa/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 3>>
There was no more preamble this time. No party, no excuse. Just a simple text: "I want you." When Jasper arrived, Elsa led him straight to her bedroom, the space personal and sacred. The connection they had forged was no longer in question. It was a fact. As they stood beside her bed, he took her hands in his.
<<speech "Jasper">> "Elsa... I want a lasting place in your life. Not just as this. With you, and with the people you call family." <</speech>>
His words, spoken so earnestly, struck her with the force of a vow. The unwavering trust he had cultivated bloomed into a fierce, protective love. She didn't just want him; she needed him to be a permanent part of her world.
<img src="img/Elsa/Corr3.jpg">
She pulled him down onto the bed with her, onto a dark, soft comforter that contrasted with the bright room. He positioned her on her back, her legs spread wide and pushed back toward her chest. He knelt between her thighs, his dark hands gripping the backs of her legs to hold her open. As he drove his thick cock deep into her glistening pussy, a gold choker glinted at her throat—a symbol of her submission to this new, profound bond. Her breasts bounced with the force of his thrusts, her face a mask of open-mouthed intensity, her eyes half-lidded or rolling back in pleasure. This was more than sex; it was a claiming, a sealing of the promise he had just made.
<video src="img/Elsa/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He turned her over then, putting her on all fours. Her long blonde hair cascaded down her back, the floral tattoo on her lower hip visible. He spread her full ass cheeks wide with his dark hands, his grip firm and possessive. He plunged his cock back into her, the penetration deep and relentless.
Thick white cum, his from a previous moment, already leaked from her stretched hole, coating his shaft and dripping down onto the pristine white sheets below. He pulled almost all the way out, forcing more of the creamy load to stretch and run freely from her opening, then pushed back in, the sight of his claim on her sending a fresh wave of pleasure through her body. Her hips remained held open, completely vulnerable to him, as he took what was now his.
<video src="img/Elsa/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Dr. Marcus Caldwell’s office was a fortress of academia—bookshelves lining every wall, the air smelling of old paper and intellectual authority. Elsa sat in the chair opposite his heavy mahogany desk, posture attentive rather than nervous. She had come to discuss her latest paper, a nuanced exploration of family obligation versus personal responsibility.
Elsa was one of Caldwell's favorite students. She prepared carefully, listened without becoming submissive, and returned from criticism with stronger work rather than excuses. More importantly, her respect for him was genuine. She valued his rare approval because she believed it had to be earned.
<<speech "Elsa">> "My argument is that obligation can give love a structure, but it cannot replace love. It becomes destructive when someone uses the relationship to demand obedience." <</speech>>
Caldwell rested one hand on the paper.
<<speech "Caldwell">> "A strong distinction. Your conclusion states it clearly." <</speech>> He tapped the third section. <<speech "Caldwell">> "Here, however, you begin defending the person who remains loyal. The prose becomes cautious." <</speech>>
Elsa considered the criticism instead of reacting to it.
<<speech "Elsa">> "I did not want loyalty itself to sound foolish. Someone can know a relationship is hurting them and still love the person." <</speech>>
<<speech "Caldwell">> "Then say that plainly. Do not protect the argument from its own consequence." <</speech>>
<<speech "Elsa">> "That loyalty can be sincere and still become self-destructive?" <</speech>>
<<speech "Caldwell">> "Exactly." <</speech>>
Elsa made a note in the margin.
<<speech "Elsa">> "I can rebuild the section around that. The responsibility is not to stop loving; it is to stop confusing love with surrender." <</speech>>
The irony pleased Caldwell. Elsa had written an intelligent warning against the very division he intended to create inside her.
He had not chosen her merely because she was available after class. Her discipline made the experiment worthwhile. Caldwell wanted the bright, articulate student preserved in public—still capable of arguing, revising, and earning praise—while a second trained layer opened beneath that intelligence whenever he called for it. Turning an indifferent student into a compliant body would prove very little. Turning one of his favorites into an obedient private animal while she continued valuing his judgment would be exquisite.
He let the academic discussion continue long enough for the next offer to feel earned rather than abrupt.
<<speech "Caldwell">> "Read the final paragraph aloud." <</speech>>
Elsa did. Caldwell interrupted twice, asking her to strengthen a verb and remove a defensive qualification. She revised both lines in front of him.
<<speech "Caldwell">> "Better. You understand the argument, but you are still carrying tension into the language." <</speech>>
<<speech "Elsa">> "Probably. I have rewritten it too many times." <</speech>>
<<speech "Caldwell">> "Then we clear the repetition before you continue. I have a focus program used for stress management and cognitive alignment. You will watch, settle your attention, and then read the section again." <</speech>>
<<speech "Elsa">> "How long does it take?" <</speech>>
<<speech "Caldwell">> "Less than an hour. You may stop if you become uncomfortable." <</speech>>
The reassurance belonged to his professorial mask.
<<speech "Elsa">> "All right. If you think it will help the revision, I am willing to try." <</speech>>
He dimmed the lights and turned on the large projector screen. A swirling, geometric pattern appeared, accompanied by a low, rhythmic hum. <<speech "Caldwell">> "Just watch the center of the screen. Let the sound wash over you. Don't try to analyze it. Just... absorb." <</speech>>
The minutes bled away. The pattern pulsed, the hum resonated in her chest. Her thoughts, which had been sharp and focused, began to soften and blur. Caldwell's recorded voice, reduced to a low monotone, wove through the hum.
<<speech "Caldwell">> (recording) "Breathe. Watch the center. Let the argument go. My voice gives the next instruction. Following feels easy. Following feels good. When the screen goes dark, you stand and wait." <</speech>>
Elsa tried to keep one hand on her paper. The paragraphs stopped making sense as arguments and became rows of shapes beneath her fingers. Her breathing matched the pulse. Her eyes no longer left the center of the screen.
Forty-five minutes later, the screen went dark. Caldwell turned the lights on. Elsa blinked, her eyes glassy, her expression placid.
<<speech "Caldwell">> "Stand." <</speech>>
Elsa stood. Her movements were smooth, without her usual sharp deliberation.
The professorial restraint left Caldwell's face. Control had landed; he no longer bothered sounding respectful.
<<speech "Caldwell">> "My favorite student can manage simple words now. Turn. Bend over the desk." <</speech>>
<<speech "Elsa">> "Yes, Professor." <</speech>>
<<speech "Caldwell">> "Wrong. In this state, you call me Master." <</speech>>
<<speech "Elsa">> "Yes, Master." <</speech>>
She bent without question, still wearing her white button-up blouse and maroon velvet skirt, sheer black pantyhose molding to the curve of her ass. Caldwell gripped her waist, lifted the skirt, and pressed his face against the nylon-covered swell, kissing and nuzzling it through the fabric while she looked back over one shoulder with a slight programmed smile.
<<speech "Caldwell">> "What was your paper warning against?" <</speech>>
<<speech "Elsa">> "Confusing love with surrender, Master." <</speech>>
<<speech "Caldwell">> "And what are you doing?" <</speech>>
<<speech "Elsa">> "Surrendering." <</speech>>
Caldwell laughed against her ass.
<<speech "Caldwell">> "So much for the clever argument. Hold still, you obedient little fraud." <</speech>>
<video src="img/Elsa/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Clothes off. Put on the black set." <</speech>>
He pointed to a black leather armchair where a set of black lingerie—bra, garter belt, thong, stockings, and heels—was laid out. Elsa dressed mechanically, her movements practiced and efficient. He led her out of the office and into the modern, open-plan main floor of the academic building, currently empty. He directed her to the stark, black metal staircase.
<img src="img/Elsa/Corr2.jpg">
<<speech "Caldwell">> "Turn. Show me your ass. Then sit and pull the bra down." <</speech>>
<<speech "Elsa">> "Yes, Master." <</speech>>
Elsa turned to display her full, rounded ass, rested one hand on the railing, and ran the other over her hip and cheek. She arched to present herself, then sat facing him, adjusted the bra cups, and exposed more of her breasts.
<<speech "Caldwell">> "The university sees a disciplined student." <</speech>> He watched her cup her breasts. <<speech "Caldwell">> "I see an empty display that moves when I speak." <</speech>>
<<speech "Elsa">> "I move when Master speaks." <</speech>>
<video src="img/Elsa/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, he walked her back to the office. The induction was reversed. The glassiness left her eyes, replaced by her usual intelligent focus.
<<speech "Caldwell">> "...and that is why strengthening your conclusion will reinforce the entire thesis," <</speech>> he was saying, as if in mid-conversation. <<speech "Caldwell">> "The revisions should be straightforward. An excellent paper, Ms. Jean. Truly." <</speech>>
<<speech "Elsa">> "Thank you, Professor Caldwell." <</speech>> She smiled, genuinely pleased. The meeting had been incredibly productive. She remembered the praise, the challenging discussion, the useful feedback. She had no memory of the staircase, the lingerie, or the pleasure of obedience. Dr. Caldwell remained one of her most respected mentors. And beneath that conscious memory, the first trigger had been planted, waiting.
<<elseif _s is 2>>
<img src="img/Elsa/Corr1.jpg">
Elsa returned with her revised paper. She remembered the first meeting as one of the most encouraging and useful academic exchanges she had experienced. Caldwell had challenged her without dismissing the personal conviction beneath the argument.
<<speech "Elsa">> "I rebuilt the third section around the distinction we discussed." <</speech>> She placed the paper on his desk. <<speech "Elsa">> "The loyalty is sincere, but that does not make every surrender healthy." <</speech>>
Caldwell read several marked paragraphs before answering. He wanted her anticipation to remain academic and genuine.
<<speech "Caldwell">> "Much improved, Ms. Jean. The hesitation is gone, and the conclusion now feels earned." <</speech>>
Elsa's face brightened.
<<speech "Elsa">> "Thank you. I kept hearing your criticism while I revised it." <</speech>>
<<speech "Caldwell">> "As you should. Good students learn to carry the right voice into their work." <</speech>>
The sentence sounded like mentorship to Elsa. Caldwell knew it was already becoming literal.
<<speech "Elsa">> "The focus exercise helped too. I lost track of time, but afterward the section felt much clearer." <</speech>>
<<speech "Caldwell">> "Then we deepen the same process and attach it to the final revision. You already know the procedure." <</speech>>
<<speech "Elsa">> "All right, Professor." <</speech>>
Again, the lights dimmed. Again, the swirling pattern appeared. This time, the induction lasted nearly an hour. The hum was deeper, the commands more insistent.
<<speech "Caldwell">> (recording) "My approval matters. My voice directs the body. When I praise you, you open. When I command, you obey. You forget the controlled state and remember only successful work." <</speech>>
Elsa's fingers loosened around the revised paper. Her lips silently repeated the final words until the screen went dark.
When the lights came up, Elsa's face was vacant and her breathing shallow.
<<speech "Caldwell">> "What do you remember when this ends?" <</speech>>
<<speech "Elsa">> "Successful work. Master's approval." <</speech>>
<<speech "Caldwell">> "What happens now?" <</speech>>
<<speech "Elsa">> "I obey and forget." <</speech>>
<<speech "Caldwell">> "Kneel." <</speech>>
She sank to her knees on the office floor. He unzipped his trousers.
<<speech "Caldwell">> "Open." <</speech>>
Elsa opened her mouth.
<<speech "Caldwell">> "What is the clever student's mouth for now?" <</speech>>
<<speech "Elsa">> "Master's cock." <</speech>>
<<speech "Caldwell">> "Then stop staring and suck, you empty little whore." <</speech>>
He guided himself between her lips. Elsa worked him with her mouth, tongue, and one hand around the base. Saliva shone on the shaft while her eyes lifted toward him between deeper strokes.
<video src="img/Elsa/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Caldwell pulled free and tapped the wet head against her lips.
<<speech "Caldwell">> "Did the favorite student earn praise?" <</speech>>
<<speech "Elsa">> "Only if Master says so." <</speech>>
<<speech "Caldwell">> "Not yet." <</speech>>
He led her from the office, not to the stairs this time, but to a bright, modern living room space with a white sofa. He stripped her completely nude, the garter belt and stockings falling away. He positioned her on her knees on the floor in front of the couch. He stood over her, stroking himself.
<<speech "Caldwell">> "Tongue out. Eyes up." <</speech>>
Elsa tilted her head back, mouth wide and tongue extended flat.
<<speech "Elsa">> "Ready, Master." <</speech>>
Caldwell came across her tongue, lips, and chin in thick ropes that dripped in heavy strands.
<<speech "Caldwell">> "What does a good student do with Master's mess?" <</speech>>
<<speech "Elsa">> "Cleans it." <</speech>>
<<speech "Caldwell">> "Then clean, you worthless mouth." <</speech>>
Elsa leaned forward, closed her lips around the head of his cock, and sucked and licked until every mixture of cum and saliva was gone.
<video src="img/Elsa/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Now you may remember being excellent." <</speech>>
<<speech "Elsa">> "Thank you, Master." <</speech>>
The reversal was swift. The glassiness cleared, and Elsa blinked, finding herself back in the chair opposite Caldwell's desk, a faint, proud smile on her face.
<<speech "Caldwell">> "...and that synthesis is precisely what elevates this from a good paper to an excellent one. You have a genuine talent for this, Ms. Jean." <</speech>>
<<speech "Elsa">> "Thank you, Professor. That means a lot." <</speech>> She beamed. His praise was more important to her than ever before, a validation she craved without understanding why. She gathered her things, completely unaware that she had just spent twenty minutes on her knees in another room, her face covered in his cum, her mind wiped clean of the entire event. To her, it was just another successful, encouraging meeting with her favorite mentor.
<<elseif _s is 3>>
<img src="img/Elsa/Corr3.jpg">
The final private review was scheduled for the end of the week. Elsa entered Caldwell's office with visible anticipation. His feedback had sharpened the paper, and the repeated focus sessions survived in her memory as periods of unusual clarity followed by rare praise.
<<speech "Elsa">> "I brought the final draft and the shorter abstract you suggested." <</speech>> She placed both on his desk. <<speech "Elsa">> "I think the argument is finally saying what I meant from the beginning." <</speech>>
Caldwell looked over the abstract, allowing the silence to make her wait for his verdict.
<<speech "Caldwell">> "It is exemplary. The argument is controlled, precise, and no longer apologizes for its conclusion." <</speech>>
<<speech "Elsa">> "Do you think it is strong enough for the undergraduate journal?" <</speech>>
<<speech "Caldwell">> "I would not have mentioned publication if I thought otherwise." <</speech>>
Elsa smiled, unable to hide how much the answer meant to her.
<<speech "Elsa">> "Thank you, Professor. I know you do not recommend work lightly." <</speech>>
<<speech "Caldwell">> "That is why my approval matters." <</speech>> He set the abstract aside. <<speech "Caldwell">> "One final alignment will fix the argument and its praise together. After that, the work will feel complete whenever you remember this meeting." <</speech>>
The familiar phrasing brought pleasant warmth into Elsa's chest.
<<speech "Elsa">> "The other sessions helped. I am ready." <</speech>>
This induction was the longest yet, nearly a full hour of swirling patterns and resonant hums.
<<speech "Caldwell">> (recording) "Publicly, you remain intelligent, capable, and proud of your work. Privately, my voice empties you. Your body opens. You obey every command. You forget the controlled state and remember only my praise." <</speech>>
When the screen darkened, Elsa's eyes were vacant and her breathing shallow.
<<speech "Caldwell">> "Who are you when the office door opens?" <</speech>>
<<speech "Elsa">> "One of your favorite students." <</speech>>
<<speech "Caldwell">> "Who are you when I close it?" <</speech>>
<<speech "Elsa">> "Master's obedient whore." <</speech>>
<<speech "Caldwell">> "Good. On the desk. Face away." <</speech>>
Elsa climbed onto the polished wood, straddled Caldwell as he lay back, and guided his cock into her. She rode him in reverse, hips rolling and bouncing while her hands braced on his chest. His hands gripped and spread her ass cheeks, exposing the penetration fully.
<<speech "Caldwell">> "Ride. Show me what all that discipline is worth behind a locked door." <</speech>>
<<speech "Elsa">> "It makes me useful to Master." <</speech>>
<<speech "Caldwell">> "Nothing more." <</speech>>
Her breasts moved with the rhythm and her mouth stayed open in programmed pleasure.
<video src="img/Elsa/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Caldwell stopped her with both hands at her hips.
<<speech "Caldwell">> "Off. Back on the desk. Legs open." <</speech>>
<<speech "Elsa">> "Yes, Master." <</speech>>
He lifted her off and laid her on her back atop the desk, legs spread wide in the air. He stood between them, holding her thighs as he thrust into her again, hard and deep. He looked down at her, at her vacant eyes and open mouth, at the small tattoo on her hip. With a final, decisive grunt, he pulled out and finished across her lower abdomen, his cum splashing onto her skin and marking the tattoo that symbolized a life he now controlled completely.
<video src="img/Elsa/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "What remains when you wake?" <</speech>>
<<speech "Elsa">> "The paper. Publication. Master's praise." <</speech>>
<<speech "Caldwell">> "What disappears?" <</speech>>
<<speech "Elsa">> "Everything Master did with my body." <</speech>>
Caldwell cleaned her, redressed her, and sat her back in the chair. The glassiness receded, replaced by bright, intelligent satisfaction.
<<speech "Caldwell">> "I will be recommending this paper for publication in the undergraduate journal, Ms. Jean. It is a remarkable achievement." <</speech>>
Elsa's face lit up with genuine, unadulterated joy. <<speech "Elsa">> "Oh, Professor! Thank you! That's... that's incredible!" <</speech>>
She left his office walking on air, the memory of his praise and the promise of publication the only things in her mind. The sex, the commands, the total surrender of her body and will, were gone, erased without a trace.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><<silently>>
<<set _player to $vices[$playerID]>>
<<set _maxFailures to 2>>
<<set _totalMoves to (1 + $extraActions[$playerID])>>
<<set _movesLeft to _totalMoves - $actionsTaken>>
<<set _hasMirror to ($mirrorPending !== null && $mirrorPending !== undefined)>>
<</silently>>\
<h1>Day $gameDay — Your Turn: <<print _player.name>></h1>
<div class="player-log" style="border: 1px solid #00ff00; padding: 20px; background: #001100; font-family: monospace; color: #0f0; line-height: 1.5;">
<<if $joshStealPending !== null and $joshStealPending !== undefined>>
<p style="color:#ff33cc; font-weight:bold; animation:pulse 1s infinite;">[APEX PREDATION]: As your influence takes hold, Josh steps out of the dark — ready to take <<print $roster.find(c => c.id === $joshStealPending.npcId).name>> for himself.</p>
<p>Your conquest has not yet settled. You can shield it with raw Resonance — or let him have her.</p>
<<if _player.gauge gte 40>>
<<link "Shield the attempt (-40% Resonance, action refunded)">>
<<run adjustGauge($playerID, -40)>>
<<set $joshStealPending to null>>
<<set $outcome to "">>
<<goto "TargetSelection">>
<</link>>
<br><br>
<<else>>
<p style="color:#888;">(Not enough Resonance to shield the attempt.)</p>
<</if>>
<<link "Let Josh take her">>
<<set _gIdx to $roster.findIndex(c => c.id === $joshStealPending.npcId)>>
<<set $roster[_gIdx].stages.josh to Math.min(3, $roster[_gIdx].stages.josh + 1)>>
<<if $roster[_gIdx].stages.josh gte 3>> <<set $roster[_gIdx].owner to "josh">> <</if>>
<<if $roster[_gIdx].imprint === null>>
<<set $roster[_gIdx].imprint to "josh">>
<<run $roster[_gIdx].traits.pushUnique("Shameless")>>
<</if>>
<<if $kaneQuest.active and $roster[_gIdx].id === $kaneQuest.npcId and $roster[_gIdx].stages.josh gte 3>>
<<set $kaneQuest.active to false>>
<<set $kaneQuest.winner to "josh">>
<</if>>
<<set $actionsTaken += 1>>
<<set $targetNPC to $roster[_gIdx]>>
<<set $joshStealPending to null>>
<<run adjustGauge("josh", 20)>>
<<set _jsE to setup.sceneFor("Josh", $targetNPC, "josh")>>
<<if not Story.has(_jsE)>> <<set _jsE to "Josh_Generic">> <</if>>
<<set $sceneToLoad to _jsE>>
<<set $sceneMasterOverride to "josh">>
<<goto _jsE>>
<</link>>
<br><br>
<</if>>
<<if $interceptionNotice !== null and $interceptionNotice !== undefined>>
<p style="color:#ffaa00; font-weight:bold;">
[PROTECTIVE INTERFERENCE]: <<print $interceptionNotice.protectorName>> stepped in to protect <<print $interceptionNotice.protectedName>> and became the target.
</p>
<<set $interceptionNotice to null>>
<</if>>
<<if $joshStealPending !== null and $joshStealPending !== undefined>>
/* The Apex Predation choice above is the only content while it waits. */
<<elseif $outcome === "SILENCED">>
<p style="color: #666;">[ECLIPSED]: Your resonance has been silenced. You cannot act.</p>
<br>[[End Turn|EndTurnLogic]]
<<elseif $outcome === "ELIMINATION_SUCCESS">>
<p style="color: #ff0000; font-weight: bold;">[CRITICAL SUCCESS]: RIVAL RESONANCE EXTINGUISHED.</p>
<p>Master <<print $targetMaster.name.toUpperCase()>> has been overwritten by your weapon.</p>
<br><<link "Proceed to Showdown" $sceneToLoad>><</link>>
<<elseif $outcome === "ANCHOR">>
<p style="color:#9c27b0; font-weight:bold;">[ETERNAL ANCHOR]: <<print $targetNPC.name>> has been claimed directly.</p>
<<if $vices.caldwell.anchorPenaltyLog and $vices.caldwell.anchorPenaltyLog.length gt 0>>
<<for _entry range $vices.caldwell.anchorPenaltyLog>>
<p style="color:#ff6600;"><<print _entry>></p>
<</for>>
<</if>>
<br><<link "Watch the Interaction" $sceneToLoad>><</link>>
<<elseif $outcome === "SUCCESS">>
<p>[SUCCESS]: Target acquired — <<print $targetNPC.name>></p>
<<if $repeatMalus gt 0>>
<p style="color:#ffaa00;">[ON GUARD]: -<<print $repeatMalus>>% — repeated attempt on her this turn.</p>
<</if>>
/* --- Predator's Rush mirror notification --- */
<<if _hasMirror>>
<p style="color: #ff33cc; font-weight: bold;">
[PREDATOR'S RUSH]: Josh's mark is on you — he STEALS this conquest.
</p>
<</if>>
<<if $chainTarget !== null>>
<p style="color: #ff66cc;">[CHAIN REACTION PENDING: <<print $chainTarget.name>>]</p>
<</if>>
<br>
<<if _hasMirror>>
/* Predator's Rush STEALS the scene: Josh's scene plays instead of
yours. Single link — no sequence. */
<<link "Enter Scene" $sceneToLoad>><</link>>
<<set $mirrorPending to null>>
<<else>>
<<link "Enter Scene" $sceneToLoad>><</link>>
<</if>>
<<elseif $outcome === "FIND_TOTAL_FAIL">>
<p>[FAILED]: Could not locate <<print $originalTarget>>.</p>
<<if $findMalus and $findMalus gt 0>>
<p style="color:#ffaa00;">[ON GUARD]: -<<print $findMalus>>% — repeated attempt on her this turn.</p>
<</if>>
<br>
<<if _player.gauge gte 10>>
<p style="color: #ffcc00;">[RESONANCE AVAILABLE]: Spend 10% gauge to force the connection.</p>
[[Spend 10% Resonance to Force Success|Player_GaugeSpend]]
<br><br>
<</if>>
<<if $failures lt _maxFailures || _player.ultType === "primal_surge">>
[[Try Again|TargetSelection]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
<<elseif $outcome === "CONQUEST_FAIL">>
<p>[RESISTED]: <<print $originalTarget>> held firm. Failures: <<print $failures>>/<<print _maxFailures>></p>
<<if $repeatMalus gt 0>>
<p style="color:#ffaa00;">[ON GUARD]: -<<print $repeatMalus>>% — repeated attempt on her this turn.</p>
<</if>>
<br>
<<if _player.gauge gte 10>>
<p style="color: #ffcc00;">[RESONANCE AVAILABLE]: Spend 10% gauge to force the connection.</p>
[[Spend 10% Resonance to Force Success|Player_GaugeSpend]]
<br><br>
<</if>>
<<if $failures lt _maxFailures || _player.ultType === "primal_surge">>
[[Try Again|TargetSelection]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
<<elseif $outcome === "CLASH">>
/* Defensive fallback for an old save. Never replay Clash_Event here:
an earlier asynchronous redirect may already have applied its
stage gain, and replaying it would award the level twice. */
<p style="color:#ff0000; font-weight:bold;">[CLASH]: Rival resonance intercepted the action.</p>
<<if $clashScenes and $clashScenes.length gt 0>>
[[Continue Clash Scenes|Clash_SceneQueue]]
<<elseif $clashNavTarget === "CPU_Process">>
[[Continue|CPU_Process]]
<<elseif $clashNavTarget === "EndTurnLogic">>
[[End Turn|EndTurnLogic]]
<<else>>
[[Return to Hub|Hub]]
<</if>>
<<else>>
<p>[SYSTEM]: Unknown outcome state: <<print $outcome>></p>
<br>[[Return to Hub|Hub]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Isabella/Normal.jpg">
Isabella knew Professor Caldwell as one of the senior academics who moved through the university directed by Maxwell Kane, her uncle and adoptive father. She did not particularly like Caldwell, but she respected his competence and trusted the institution around him.
Kane asked her to preview a first-aid orientation intended for adult students and staff. Caldwell supervised the test in a bright white studio furnished with a white leather couch. Two sample costumes and a written attention exercise waited on a rack.
<<speech "Isabella">> "If the nurse costume appears in the final orientation, my first recommendation will be to burn it." <</speech>>
<<speech "Caldwell">> "It is a visual-recall test, not a fashion proposal." <</speech>>
<<speech "Isabella">> "That sentence will be quoted in my review." <</speech>>
Caldwell wore the professional mask while he fitted headphones over her ears and directed her toward a screen. The first section contained ordinary emergency procedures. The colors then slowed, the projector's hum deepened, and the narrator began linking each breath to a pulsing symbol.
<<speech "Caldwell">> (recording) "Watch the center. Breathe in when it opens. Breathe out when it closes. Each pulse removes a distraction. Each number leaves less to decide." <</speech>>
Isabella noticed the repetition and tried to mark it on her clipboard. After forty-six minutes, the same half-written word covered three lines. Her shoulders had relaxed; her dark eyes remained fixed on the screen; Caldwell's live voice entered without resistance.
<<speech "Caldwell">> "Orientation complete. Stand." <</speech>>
She stood.
The professional expression disappeared from his face.
<<speech "Caldwell">> "Now the Director's clever girl gets simple work. White costume. Put it on." <</speech>>
<<speech "Isabella">> "Yes, Professor." <</speech>>
<<speech "Caldwell">> "Master. Learn the right word." <</speech>>
<<speech "Isabella">> "Yes, Master." <</speech>>
Isabella changed into the short white nurse-style top with red trim, red strappy garters, a tight white thong, white fishnet stockings, and red platform heels.
<<speech "Caldwell">> "Couch. Belly down. Ass up. Look back." <</speech>>
She lay on her stomach across the white leather, propped herself on her elbows, and looked over one shoulder with a soft smile. Isabella lifted one leg, arched her back, and pushed her rounded ass higher while the thin white thong pulled between her cheeks. She bit her lip and held the degrading pose exactly as ordered.
<video src="img/Isabella/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Kane raised a principled woman." <</speech>> He laughed at her displayed body. <<speech "Caldwell">> "I get a cheap little nurse showing me her ass." <</speech>>
For the attention exercise, Caldwell ordered her into the second outfit: a short yellow floral sundress, pink lace panties, large orange heart-shaped sunglasses, and a delicate necklace. Isabella sat on a beige living-room couch with her legs spread and the clipboard balanced in one hand.
<<speech "Caldwell">> "Write the procedure." <</speech>>
<<speech "Isabella">> "Check the scene for immediate danger." <</speech>>
<<speech "Caldwell">> "Panties aside. Keep writing." <</speech>>
She pulled the pink lace aside. Caldwell slid two fingers into her and worked them slowly while she tried to continue the form. Her brows tightened; her pen paused; soft gasps escaped as his fingers moved deeper. Isabella glanced down, forced her hand back into motion, and kept writing while her thighs trembled around him.
<video src="img/Isabella/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "What does the smart girl do?" <</speech>>
<<speech "Isabella">> "Writes while Master uses her." <</speech>>
<<speech "Caldwell">> "Good. A pen in one hand and fingers in your cunt. Kane must be proud." <</speech>>
He counted her out of the trance and replaced the session with a memory of repetitive filming and a difficult questionnaire. Isabella left with legitimate criticism of the orientation's childish visual design and no conscious memory of what had happened on either couch.
<<elseif _s is 2>>
<img src="img/Isabella/Corr1.jpg">
Caldwell's follow-up request arrived through the official pilot system. Isabella accepted because her first review had produced revisions and because a strange blankness around the studio made her want a complete record.
She entered his office in a short purple floral dress with thin straps, small gold earrings, and a delicate necklace, carrying her own notes.
<<speech "Isabella">> "I want the raw session log this time." <</speech>>
<<speech "Caldwell">> "You will receive the approved record." <</speech>>
<<speech "Isabella">> "That was not what I asked for." <</speech>>
The new module used shifting first-aid diagrams, a soft metronome, and numbered breathing prompts. Isabella wrote for as long as she could. Caldwell let the induction continue for fifty-two minutes, repeating the cycle until her pen rolled from relaxed fingers.
<<speech "Caldwell">> (recording) "Find the rhythm. Follow it down. Questions become noise. Noise becomes quiet. When the tone ends, the assessment begins." <</speech>>
The tone ended.
<<speech "Caldwell">> "Assessment begins. Kneel." <</speech>>
Isabella lowered herself onto the gray carpet.
<<speech "Caldwell">> "Hold my cock. Open. Suck." <</speech>>
She leaned between his spread legs, wrapped one hand around the shaft, and took him into her mouth while still wearing the purple floral dress. Isabella looked up with a playful smile, sucked in deep strokes, then pulled back and stood when Caldwell crooked one finger.
<<speech "Caldwell">> "Dress off. I want the Kane name naked on my floor." <</speech>>
Isabella untied the thin straps and let the purple dress fall, exposing her small natural breasts and smooth pussy. She returned to her knees, brushed her dark hair aside, and resumed sucking with slow licks between deeper strokes.
<video src="img/Isabella/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Saliva coated Isabella's lips, chin, and Caldwell's shaft. He pulled back and pointed toward the wet mess she had made.
<<speech "Caldwell">> "Clean. Tongue first. No hands until I say." <</speech>>
Naked on the patterned gray carpet, Isabella looked straight up with an eager smile and tongue extended. She took the head between her lips, licked the underside in long strokes, and sucked while fresh saliva shone on her chin. Her eyes sometimes closed in concentration; she wiped her mouth only when Caldwell permitted it and immediately returned to cleaning.
<video src="img/Isabella/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Isabella">> "I'm a good girl who cleans up her messes." <</speech>>
<<speech "Caldwell">> "You are a worthless mouth repeating what Master gave it." <</speech>>
<<speech "Isabella">> "A worthless mouth for Master." <</speech>>
Caldwell dressed her, restored the memory of a tedious follow-up, and returned her annotated notes. Isabella left irritated by his evasiveness and unaware that the irritation now sat above a trained layer that opened whenever he said *assessment begins*.
<<elseif _s is 3>>
<img src="img/Isabella/Corr3.jpg">
The orientation pilot reached its final presentation in a bright office suite with white walls, a whiteboard, gray carpet, and a glass side table. Isabella came prepared to tell Kane that the material was usable but Caldwell's recordkeeping remained inadequate.
Caldwell began the required closing module before she could deliver the recommendation.
<<speech "Isabella">> "I am not completing another undocumented session." <</speech>>
<<speech "Caldwell">> "The documentation is on the desk." <</speech>>
<<speech "Isabella">> "Then I read it first." <</speech>>
The first page contained a visual fixation grid. The office speakers began the familiar metronome before Isabella understood that the document itself was part of the induction.
She tried to stand. Each line instructed her eyes to return to the center, breathe, and read the next. Caldwell's recorded voice joined the rhythm.
<<speech "Caldwell">> (recording) "Read. Breathe. Return to center. The more you check, the less you question. The more you question, the deeper you read." <</speech>>
Fifty-eight minutes passed before the last page turned beneath her hand.
<<speech "Caldwell">> "Assessment begins." <</speech>>
Isabella's posture emptied of resistance.
<<speech "Caldwell">> "Strip. Turn around. Sit on Master." <</speech>>
She removed every piece of clothing and straddled Caldwell in reverse cowgirl. Completely nude, Isabella sank onto him and began rolling her hips in slow circles. His hands gripped and spread her rounded cheeks. She braced one hand on her thigh, glanced back with heavy-lidded eyes, and bounced steadily while her dark hair moved across her back.
<video src="img/Isabella/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "What is the Director's daughter?" <</speech>>
<<speech "Isabella">> "Master's trained hole." <</speech>>
<<speech "Caldwell">> "What happens when the smart woman sees a flaw?" <</speech>>
<<speech "Isabella">> "She fixes it for Kane and opens it for Master." <</speech>>
Caldwell restored her public awareness long enough for the orientation presentation. Isabella spoke clearly, answered Kane's questions, and recommended stronger independent logging. Nobody saw the command waiting beneath her competent performance.
The university event continued at its conference hotel. Isabella had a room with white sheets and a dark wooden headboard. When Caldwell said *assessment begins* outside her door, she admitted him, undressed, and moved onto all fours on the bed.
<<speech "Caldwell">> "Ass up. Back to me. Take it." <</speech>>
He drove into her from behind while she braced one hand on the sheets and looked over her shoulder with an open-mouthed, pleasure-flushed expression. Her rounded ass rocked against him. Caldwell finished deep inside; when he pulled out, thick white cum leaked from her pussy, coated her lips, and dripped between her cheeks.
<video src="img/Isabella/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Stay there. Let it run." <</speech>>
Isabella remained on all fours, ass presented and eyes dazed.
<<speech "Isabella">> "Master's cum stays where he leaves it." <</speech>>
<<speech "Caldwell">> "Good garbage." <</speech>>
Isabella kept her warm intelligence, her relationship with Nathan, and Kane's trust. Caldwell had no use for an empty doll who could not evaluate a program or sit beside the Director without drawing concern.
Instead, he preserved the capable woman and buried crude commands beneath her judgment. Isabella challenged weak policy, noticed inconsistencies, and demanded safeguards in public. When Caldwell triggered her, the same principled woman became an obedient mouth, ass, and access point who remembered nothing after he released her.
The old compliance test had become real in the ugliest possible way: Isabella could complete any intellectual task while Caldwell used her body, and the part trained to obey would never interrupt the part Kane trusted.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Chanel and Caldwell knew each other as university colleagues. She taught sociology and ran Havenwood; he taught philosophy, managed campus security, and signed the annual safety certification that kept the foster house connected to university funding. Their relationship had always been formal. Chanel found him abrasive but competent. Caldwell found her compassion smug, particularly because it was genuine.
<img src="img/Chanel/Normal.jpg">
She arrived at the campus media studio carrying Havenwood's renewal file and wearing a fitted light-pink dress beneath her coat.
<<speech "Chanel">> "Your email said the safeguarding review now includes a recorded response exercise." <</speech>>
<<speech "Caldwell">> "The university wants evidence that residential supervisors can make decisions under pressure." <</speech>> He accepted the file without offering her a seat. <<speech "Caldwell">> "You objected to hypothetical checklists. This is the alternative." <</speech>>
<<speech "Chanel">> "I objected to a checklist that classified a locked pantry as a major security event." <</speech>>
<<speech "Caldwell">> "And now you can demonstrate your superior judgment on camera." <</speech>>
The studio contained two sets: a dark stage with vertical light panels and a round wooden table, and a mock living room built for training scenarios. A green potted plant had been positioned to make the first set look less severe. It failed.
A wardrobe assistant had left a purple sleeveless top, dark skirt, black lace-top stockings, heels, and red panties for continuity across the recorded module. Chanel changed behind a screen while Caldwell loaded the program.
<<speech "Chanel">> "How long does this take?" <</speech>>
<<speech "Caldwell">> "Forty-five minutes. The visual track presents escalating scenarios. The audio controls pacing and records your verbal decisions." <</speech>>
His explanation was dry, plausible, and entirely false.
Chanel sat in front of the monitor. The first scenarios were ordinary: an open side door, a resident missing curfew, smoke detected in an empty kitchen. She answered clearly. Caldwell remained behind the control desk while a soft pulse began beneath the recorded narrator.
<<speech "Caldwell">> (recording) "Follow the vertical light. Breathe when it brightens. Hold the breath when it narrows. Every correct decision begins with stillness." <</speech>>
The pulse slowed. The scenarios became less distinct. Their text blurred into bands of light that expanded and contracted with Chanel's breathing.
<<speech "Caldwell">> (recording) "A secure room has one point of authority. Competing instructions create danger. Let one voice remain clear." <</speech>>
Chanel tried to look back at him.
<<speech "Chanel">> "The screen is repeating." <</speech>>
<<speech "Caldwell">> "The repetition measures consistency. Continue." <</speech>>
His clinical mask held while the induction deepened. Chanel's hands relaxed on the chair arms. Her answers shortened. The screen's vertical bands rose and fell, and Caldwell's recorded voice occupied more of the silence between them.
<<speech "Caldwell">> (recording) "When the room becomes quiet, the clearest instruction feels like your own decision. You do not need to question what is clear." <</speech>>
Forty-five minutes passed by the studio clock. To Chanel, the final half of the session compressed into one long breath.
The monitor went black.
<<speech "Caldwell">> "Stand and remove the top." <</speech>>
Chanel obeyed. Her warm eyes remained open but unfocused as she bared her full breasts. Small cross tattoos sat high on her chest above the red panties and black stockings.
Caldwell's professional tone vanished.
<<speech "Caldwell">> "There she is. Havenwood's patient little saint with her tits out because a screen told her to listen." <</speech>> He pointed toward the wooden table. <<speech "Caldwell">> "Get on it. Show me what all that dignity is worth." <</speech>>
Chanel knelt on the round table beneath the vertical lights. He ordered her to face the camera, extend one leg, and put her hand between her thighs. Her fingers moved over the thin red fabric. She rubbed slowly, hips tilting as pleasure opened her mouth. Each time her gaze tried to drift, Caldwell made her look into the lens.
<video src="img/Chanel/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Pathetic." <</speech>> He watched her press harder through the panties. <<speech "Caldwell">> "You spend your life teaching people that kindness gives them value. One cheap program, and you're rubbing yourself on command like a trained animal." <</speech>>
A faint crease formed between Chanel's brows. The insult reached something beneath the trance. Caldwell enjoyed the resistance enough to deepen the humiliation.
<<speech "Caldwell">> "Put the purple top and skirt back on. Go to the living-room set and lie down. You are going to learn how little of you needs to stay dressed before your body answers me." <</speech>>
She redressed mechanically and reclined on the mock living-room couch among floral pillows, dark skirt hiked high. Caldwell knelt between her spread legs. One of Chanel's hands gripped the purple top while the other rested against the back of his head. His tongue worked beneath the skirt. Her hips rolled and her eyes fluttered shut, then opened sharply as pleasure built against the vacant calm in her face.
<video src="img/Chanel/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Caldwell stopped before her body could finish.
<<speech "Caldwell">> "Look at you begging without words. You're not the protector in this room. You're furniture that gets wet when I use it." <</speech>>
He returned her to the chair and restarted the vertical pulse for a final conditioning pass.
<<speech "Caldwell">> (recording) "The recorded exercise was routine. Any missing detail was an ordinary lapse of attention. When the certification file appears, you will feel calm and cooperative." <</speech>>
Chanel blinked awake with the renewal folder in her lap and the pink dress back on her body. The studio wardrobe hung neatly behind the screen.
<<speech "Chanel">> "Did I complete it?" <</speech>>
<<speech "Caldwell">> "Barely." <</speech>> He signed the first page. <<speech "Caldwell">> "Your response latency was disappointing. A reinforcement session is required before I issue final certification." <</speech>>
Chanel rubbed one temple. Her thighs felt warm; the inside of her mouth was dry.
<<speech "Chanel">> "Send me the appointment." <</speech>>
She left with the file, remembering lights, scenarios, and nothing that explained why her body reacted to Caldwell's signature at the bottom of the page.
<<elseif _s is 2>>
<img src="img/Chanel/Corr1.jpg">
Chanel came from a faculty event in a metallic bronze one-shoulder dress scattered with tiny stars. The unsigned Havenwood certificate had appeared in her inbox again, marked *reinforcement incomplete*. She found Caldwell waiting in an empty classroom with a monitor positioned in front of the green chalkboard.
<<speech "Chanel">> "I want the raw recording from the first session." <</speech>>
<<speech "Caldwell">> "The media file is part of a protected security assessment." <</speech>>
<<speech "Chanel">> "Then play it for me." <</speech>> She placed the renewal folder on the desk. <<speech "Chanel">> "I remember less than half of what happened, and I woke with bruises on my knees." <</speech>>
Caldwell regarded her with the clinical patience he used only while setting a trap.
<<speech "Caldwell">> "Memory discontinuity is the reason your certification remains incomplete. The reinforcement module will restore the sequence and determine whether your lapse is a safeguarding concern." <</speech>>
<<speech "Chanel">> "And if I refuse?" <</speech>>
<<speech "Caldwell">> "Havenwood's review remains open. You may explain the delay to its board yourself." <</speech>>
Chanel sat because the file needed resolving, not because she trusted him. She kept the bronze dress on and watched the first sequence with both hands clenched in her lap.
The program lasted fifty-two minutes.
At first she tracked each repetition, silently naming the manipulation: narrowing visual field, paced breathing, verbal overload. Caldwell's recording answered each act of resistance before she completed it.
<<speech "Caldwell">> (recording) "Recognition is not immunity. The part that names the method can become quiet while the body continues to follow." <</speech>>
The chalkboard softened beyond the monitor. Her grip loosened.
<<speech "Caldwell">> (recording) "The house is secure when the key turns. The mind is secure when one instruction remains. Let the key turn." <</speech>>
Chanel stood once. Caldwell guided her back into the chair by the shoulder without interrupting the screen. She tried again to remember why the renewal file mattered. The reason became distant while the phrase *let the key turn* repeated through color and sound.
When the fifty-two minutes ended, Chanel sat with her eyes open and her will thinned to a narrow, trembling thread.
<<speech "Caldwell">> "Take off the dress. Keep the stockings and heels. Climb onto the desk on all fours." <</speech>>
She obeyed. Caldwell watched the bronze fabric slide away, leaving her topless in a black garter belt, sheer black stockings, and nude heels.
<img src="img/Chanel/Corr2.jpg">
She climbed onto the desk as instructed and knelt on the wooden surface facing him — full bare breasts, lace and sheer stockings framing her, the two small dark crosses sitting high on her chest — and waited with the monitor light still pulsing behind her.
His mask dropped.
<<speech "Caldwell">> "You knew it was a trap and sat down anyway." <</speech>> He opened his trousers. <<speech "Caldwell">> "All that education, all those earnest lectures, and you're still stupid enough to crawl onto my desk because a certificate frightened you." <</speech>>
Chanel stretched across the wooden surface in front of the chalkboard, full breasts hanging beneath her. One hand braced on the desk while the other wrapped around his shaft. She took him deep, lips and tongue moving in steady strokes, cheeks hollowing as he held her in place.
<video src="img/Chanel/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "This is what your mouth is actually good for." <</speech>> He thrust deeper. <<speech "Caldwell">> "Not comforting foster children. Not teaching. Taking whatever I push into it and being grateful I found a use for you." <</speech>>
The words made the remaining thread of resistance pull tight. Tears gathered in Chanel's eyes, but her mouth continued obeying.
Caldwell dragged her from the desk to the classroom floor and ordered her onto her knees. She was fully nude now, earrings and bracelets still catching the light. He stroked over her upturned face while she held her mouth open and tongue extended. Thick white cum landed across her tongue, lips, chin, breasts, and chest tattoos. She took the head back into her mouth, cleaned it, then gathered fluid from her face with her fingers and fed it between her lips.
<video src="img/Chanel/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Professor Reynolds." <</speech>> He said the title with open contempt. <<speech "Caldwell">> "A respected academic kneeling under her own chalkboard, licking my waste off her fingers. If this is what Havenwood calls a role model, the place deserves to be condemned." <</speech>>
Anger flickered through the trance. Chanel's fingers stopped at her mouth.
<<speech "Chanel">> "No." <</speech>>
It was barely a sound, but it belonged to her.
Caldwell smiled.
<<speech "Caldwell">> "Good. There's still enough garbage in there to break properly." <</speech>>
He returned her to the chair and ran another conditioning sequence until her face went slack.
<<speech "Caldwell">> (recording) "You completed a demanding reinforcement exercise. Any taste, soreness, or missing image proves that the training reached the necessary depth. You will protect the program from interference until final review." <</speech>>
Chanel regained awareness standing beside the desk, bronze dress fastened, renewal file in her hands. Caldwell had signed the second page but not the final certificate.
Her mouth tasted wrong. A white trace remained beneath one fingernail.
<<speech "Chanel">> "What happened?" <</speech>>
<<speech "Caldwell">> "Your performance remained inadequate." <</speech>> He looked directly at her lips. <<speech "Caldwell">> "Final review will determine whether Havenwood keeps its certification." <</speech>>
Chanel left angry enough to investigate and conditioned enough to conceal the investigation from everyone who might have helped her.
<<elseif _s is 3>>
<img src="img/Chanel/Corr3.jpg">
Chanel recovered the media studio's automatic backup from a temporary archive. The clips showed the dark table, the classroom desk, and her own blank face following Caldwell's commands. She copied the files to an encrypted drive and entered his office prepared to take the evidence to university counsel.
<<speech "Chanel">> "I have copies outside this room." <</speech>>
It was a lie, but she delivered it well.
Caldwell sat behind his desk without surprise.
<<speech "Caldwell">> "Then you should verify that the export is complete before you embarrass yourself." <</speech>>
<<speech "Chanel">> "I watched enough." <</speech>>
<<speech "Caldwell">> "You watched the visible track. The command layer is embedded in the secure master." <</speech>> He turned the monitor toward the armchair. <<speech "Caldwell">> "If you intend to make an accusation about altered cognition, you will need the complete file." <</speech>>
Chanel did not trust him. She also needed proof that could survive scrutiny. She remained standing while he loaded the master recording.
The first phrase came through the speakers.
<<speech "Caldwell">> (recording) "The final inspection begins at the threshold. Sit so the record can be completed." <</speech>>
The earlier conditioning tightened around her muscles. Sitting was not instantaneous surrender; it was the first forced movement in a fifty-six-minute fight.
Chanel gripped both chair arms as the screen replayed her own degradation beneath vertical pulses. She repeated facts to herself: her name, her office, Havenwood's address, the location of the drive. Caldwell's recording separated each fact from the next until they no longer formed a plan.
<<speech "Caldwell">> (recording) "A name is a label. An office is a room. An address is a number. None of them can issue a command." <</speech>>
Her breathing synchronized with the light.
<<speech "Caldwell">> (recording) "Protection means preserving the authority that defines safety. Caldwell defines safety. Resistance creates risk. Obedience closes the door." <</speech>>
Chanel tried to stand twice. The first attempt lifted her shoulders from the chair. The second moved only one hand. The session continued until the studio clips ceased to look like evidence and began to feel like instructions she had already accepted.
When the fifty-six minutes ended, Caldwell removed the encrypted drive from her loose fingers and snapped it in half.
<<speech "Caldwell">> "On the carpet." <</speech>>
Chanel slid from the chair. The last of her will remained visible in the hatred she directed at him.
He stripped away her clothes, leaving a black lace garter belt, sheer stockings, and a gold chain against her bare chest. Then he forced her onto her back on the gray office carpet beside the black leather couch.
<<speech "Caldwell">> "Look at that face." <</speech>> He knelt between her spread legs and hooked one stockinged thigh over his shoulder. <<speech "Caldwell">> "You came here imagining you were brave. You're an overgrown housemother with a broken drive and no one coming through the door." <</speech>>
He thrust into her hard, held the other leg open, and drove her body against the carpet. Chanel cupped one breast, mouth wide, eyes rolling under the force. His hand closed around her throat as he continued.
<video src="img/Chanel/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The pressure at her neck changed nothing. Her eyes stayed half-lidded and unfocused, her body rocking with his thrusts; the snapped drive lay somewhere near the desk and she did not look at it, because nothing in the room could compete with the voice at her ear.
<<speech "Chanel">> "Havenwood will..." <</speech>> The sentence drifted apart before it became anything.
Caldwell laughed in her face.
<<speech "Caldwell">> "Havenwood is a building full of doors, and you are the worthless key ring hanging from my hand." <</speech>> He tightened his grip. <<speech "Caldwell">> "Tell me who decides which doors open." <</speech>>
The answer came before he finished asking — no fight, no delay, the completed conditioning supplying it like a reflex.
<<speech "Chanel">> "You decide." <</speech>>
<<speech "Caldwell">> "Who do you protect?" <</speech>>
The surrender landed cleanly.
<<speech "Chanel">> "Whoever you tell me to protect." <</speech>>
Her voice no longer shook. The hatred remained somewhere inside her, but it no longer possessed the authority to direct a single action.
Caldwell moved her onto the couch. Chanel lay on her back in the black stockings and garter straps, topless, brown hair spread beneath her and the floral tattoo above her shaved pussy visible. He thrust between her raised legs, then pulled out and stroked himself over her opening. Thick white cum landed onto and inside her pussy, filling it and leaking across her skin.
Chanel reached down immediately. She spread her cum-filled lips, rubbed and scooped the semen with two fingers, pushed it back inside, then raised the coated fingers to her mouth and licked them clean before continuing.
<video src="img/Chanel/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "That's your final certification." <</speech>> He watched her clean her fingers. <<speech "Caldwell">> "Not professor. Not caretaker. A cheap administrative hole that signs whatever I put in front of it." <</speech>>
<<speech "Chanel">> "Yes, Master." <</speech>>
Chanel returned to Havenwood with the completed certificate. She continued teaching, managing the house, and greeting residents with the same patient warmth. Caldwell had not erased her competence; he had placed himself above it.
Security reviews involving adult volunteers began routing through his office. Faculty friends received invitations to private resilience assessments. Former adult residents who returned to help were added to lists Chanel prepared with careful notes about their schedules, trust, and access.
Everyone saw a responsible professor cooperating with campus security to protect Havenwood. Inside the conditioned hierarchy of Chanel's mind, every act of protection now began with the same question:
What would Master Caldwell want next?
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Caldwell's office, late afternoon. The blinds were half-closed, thin slats of sunlight cutting across the desk. The projector was already on, its screen dark and waiting. Old books and polished wood, and the quiet of a man who'd learned to make rooms hold their breath.
<img src="img/Rae/Normal.jpg">
Rae slouched in the chair opposite him — floral sundress, platform sandals, septum ring, the whole armor of her. She'd been sent here for "disruptive behavior" again, the third time this semester, and she'd come ready for a fight. What she hadn't come ready for was the way Dr. Caldwell looked at her. Not angry. Not bored. Like she was an interesting problem he'd been waiting to get his hands on.
<<speech "Caldwell">> "You know why you're here, Miss Rae." <</speech>>
<<speech "Rae">> "Enlighten me, Doc. I'm sure you will anyway." <</speech>>
He smiled — thin, patient, and utterly unbothered. <<speech "Caldwell">> "I've read your file. Every report. You're not disruptive because you're rebellious. You're disruptive because you don't believe you're worth being anything else, so you make certain no one expects more of you." <</speech>>
She flinched before she could stop herself. <<speech "Rae">> "Spare me the psych lecture. We've already done this dance over and over." <</speech>>
<<speech "Caldwell">> "No lecture. An experiment." <</speech>> He reached for the remote. <<speech "Caldwell">> "I'd like you to try a simple focus exercise. It helps with impulse control — a documented technique. Ten minutes, and then we'll discuss your behavior. If you find it useless, you're free to leave." <</speech>>
The projector hummed. A slow spiral turned on the screen — blues and silvers, almost soothing. Rae rolled her eyes but her gaze drifted to it anyway, because she'd never been good at ignoring a challenge, and she was sure she could beat a screensaver.
<<speech "Rae">> "This is your big trick? A screensaver?" <</speech>>
<<speech "Caldwell">> (recording) Breathe in. Breathe out. Your thoughts slow. <</speech>> The voice came layered, low, under the hum. <<speech "Caldwell">> (recording) Your body relaxes. You are safe here. You are understood. <</speech>>
She snorted. She kept watching. And somewhere in the first ten minutes, her shoulders dropped. By the fifteenth minute her hands had unclenched in her lap. By the half-hour mark, she had stopped counting the minutes entirely, her head tilted, her eyes fixed on the center of the spiral, her breathing slow and deep and hers anymore.
The clock on his desk had gone past the hour before he spoke again.
<<speech "Caldwell">> "Good. You're doing very well, Rae. Deeper." <</speech>>
She didn't answer. Her lips parted. Her thighs pressed together, a faint flush climbing her neck. And when he told her to stand, she stood. When he told her to undress, her hands moved automatically — sundress pooling at her feet, sandals kicked aside — and she stood naked in the projector light, pale and inked, looking at him with eyes that were open and glassy and utterly his.
<video src="img/Rae/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her over the white studio couch, and his hand came down on her bare ass — sharp, deliberate, a crack of sound that made her gasp. Then again. And again. She arched into it, looked back at him over her shoulder, and smiled — dazed, wrong, some part of her that should have been screaming instead saying softly, <<speech "Rae">> "I like it... more... Professor..." <</speech>>
<<speech "Caldwell">> "Of course you do," <</speech>> he said, clinical, turning her flesh pink under his hand. <<speech "Caldwell">> "You've spent two years begging the whole campus to hit you so you'd finally feel something real. I'm simply the first one strong enough to do it properly." <</speech>>
He took her to the bedroom off his office — white sheets, soft light — and knelt behind her, his hands spreading and gripping her ass while his fingers worked into her from behind, slow and thorough, curled deep with every stroke while she trembled against the mattress, moaning into the pillow, her body rocking back onto his hand on its own.
<video src="img/Rae/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She came hard, shuddering, and lay there gasping while he slid his fingers free and stood. <<speech "Caldwell">> "That's enough for today." <</speech>> He looked down at her, calm and satisfied. <<speech "Caldwell">> "You were right about one thing, Miss Rae — you're not rebellious. You're just undisciplined. We'll fix that." <</speech>>
She dressed in a daze, went back to her dorm, and told herself she'd never go back. But that night she lay awake with her skin still humming where his hand had landed, and some traitor part of her was already counting the hours until she could.
<<elseif _s is 2>>
She didn't remember deciding to come back. That was the worst part. One moment she was across campus, telling herself the whole thing was a fever dream she'd shake off; the next, her feet had carried her through his door, and she was standing in front of his desk in the black lace set she'd put on without being able to name why.
<img src="img/Rae/Corr2.jpg">
Caldwell watched her arrive with quiet satisfaction, as if she'd been exactly on schedule. <<speech "Caldwell">> "You've returned, Rae. Good. I expected you sooner." <</speech>>
<<speech "Rae">> "I didn't — " <</speech>> Her voice came out wrong, soft and thready. <<speech "Rae">> "I don't know why I'm here. I don't want this. I'm not — " <</speech>>
<<speech "Caldwell">> "You're not what? The girl who mouthed off in class? The rebel?" <</speech>> He stood, slow, circling her like a buyer inspecting livestock. <<speech "Caldwell">> "That girl was noise, Rae. You made her because you were afraid of what you'd be without her. And look at you now — standing in my office, in that ridiculous lace, knees already weak, mouth already wet, because your body knows the truth your pride won't admit." <</speech>>
She shook her head, tried to back away, and her knees buckled — she caught the arm of the couch, gasping, her body flooding with heat at the sound of his voice alone. <<speech "Caldwell">> "There it is," <</speech>> he murmured. <<speech "Caldwell">> "The real you. Not the tantrum. The empty thing underneath, waiting for someone to fill it." <</speech>>
He led her out to the patio by the glowing blue pool, night pressing in around them, the water throwing ripples of light across the white sofa. She knelt in the black lace and took him into her mouth — deep, desperate, both hands wrapped around his shaft, eyes looking up at him through the haze. He watched her work, one hand resting on her head, and the contempt in his voice was almost affectionate.
<video src="img/Rae/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The campus problem child, on her knees by my pool. Do you understand what you are now, Rae? You're not a rebel. You never were. You're a mouth and a hole and a desperate need for someone to take control. I've seen a hundred girls like you. They all end the same way." <</speech>>
She pulled off, gasping, and found a last shred of herself. <<speech "Rae">> "Fuck you. I'm not — I'm nobody's — " <</speech>>
He grabbed her jaw, tilted her face up, and she froze — her body obeying before her mind could catch up, her defiance crumbling like paper in water. <<speech "Caldwell">> "You'll learn," <</speech>> he said softly. <<speech "Caldwell">> "Words are all you had, and I'm taking those away one at a time." <</speech>>
He stood over her and stroked himself while she knelt nude on the floor in front of him, head tilted back, mouth wide open, tongue stuck out. He came over her face in thick ropes — across her tongue, her lips, her cheeks, her chin — and she kept her eyes locked upward, smiling through the mess, tongue still extended as more of it landed and dripped. Then she leaned in, mouth open, and licked and sucked the head clean, his cum still glistening on her face and tongue while her eyes stayed on his, and when she finally sat back there was nothing left in them but him.
<video src="img/Rae/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Better. You're learning faster than I expected." <</speech>> He wiped a strand from her chin with his thumb, almost gentle. <<speech "Caldwell">> "Now get dressed. Go back to your life. Play the rebel. I enjoy the irony — everyone still afraid of the mouth that only opens for me now." <</speech>>
She went home, and lay awake, and the horror came back in the dark — but so did the pull. And she knew, with a sick certainty she couldn't fight, that she'd be back before she'd decided to come.
<<elseif _s is 3>>
She didn't knock. She came when he called, every time, no matter the hour, no matter what she'd been doing — dressed in what he left out for her, kneeling when he gestured, opening when he asked. Publicly she was still Rae: the mouthy rebel, the girl who flipped off cameras and never took anything seriously. Privately there was only Caldwell, and the hum of the projector, and the hollow, perfect peace of a will that had stopped fighting.
<img src="img/Rae/Corr3.jpg">
He had her in the white room off his office, on all fours on the couch, a black lace garter riding one thigh, and he drove into her from behind — deep, steady strokes, one hand on her hip, the other bracing her shoulder. She looked back at him over her shoulder with half-lidded eyes and an open mouth, moaning, rocking back to meet him, her whole body made for this.
<video src="img/Rae/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Look at you," <</speech>> he breathed, driving deeper. <<speech "Caldwell">> "The girl who thought she was above everyone. Do you know what you are now, Rae? You're nothing. You're garbage that I've trained to kneel. You're a worthless, empty thing that exists for one purpose — to serve me." <</speech>>
<<speech "Rae">> "Yes — Master — " <</speech>> She meant it with everything she had left. The words fell out of her like water, and she was grateful for them. <<speech "Rae">> "I exist for you, Master." <</speech>>
He took her to the classroom at the end of the day — her classroom, the one where she'd caused the disruption that had landed her in his office in the first place. The green chalkboard was still covered in equations; the desks stood in their patient rows. He laid her across the white desk at the front, spread her legs wide, and drove into her — her mouth open in continuous moans, her body rocking with every stroke, the wet sounds filling the empty room where she'd once shouted defiance.
<video src="img/Rae/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Do you remember what you said in this room, Rae? The day I first had you sent to my office? You told the professor no one could make you do anything." <</speech>> He thrust harder, and she cried out. <<speech "Caldwell">> "And now here you are — on the desk, in the room where you were a problem, taking your Master's cock like the worthless thing you turned out to be. Say it." <</speech>>
<<speech "Rae">> "I'm worthless," <</speech>> she gasped. <<speech "Rae">> "I'm nothing without you, Master. I'm your — I'm your hole. I'm your toy. I exist for you." <</speech>>
<<speech "Caldwell">> "Good girl." <</speech>> He pulled out, and she stayed bent over the desk, dripping, waiting. <<speech "Caldwell">> "That's the difference between you and the other girls, Rae. They had to be broken. You just needed someone to show you what you already were." <</speech>>
He let her dress, and she went back to her life, and nobody noticed anything — the rebel still flipped off the cameras, still mouthed off in the quad, still made the freshmen nervous. But at night she knelt for him, and said the words he'd taught her, and meant them. The most feared mouth on campus belonged to him now, and it only opened to say yes, Master.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Josh knew Gina as one of the friends who kept pulling Elsa outward: toward new people, late drives, crowded rooms, and plans that formed too quickly for him to control. He had seen Gina at the house often enough to recognize her voice before the door opened, and he resented how easily Elsa brightened when she heard it.
Gina did not plan parties. Planning required dates, lists, and the belief that everybody would follow instructions.
Gina walked into an ordinary room and made a party happen to it.
By the time Josh came downstairs, she had been waiting for Elsa for less than ten minutes. Music was already playing from a speaker she had found on the shelf. Her shoes were beside the white chair. Three message threads glowed on her phone: a bartender she knew had found them space, a friend with a car had volunteered to drive, and somebody's cousin had invited them to an after-hours kitchen if the first place became dull. Gina had invited two more people on a whim because one had made her laugh in line for coffee.
<img src="img/Gina/Normal.jpg">
She looked up from the couch with a bright smile.
<<speech "Gina">> "There he is. Do you know if Elsa wants dancing or bad decisions tonight? I have options for both." <</speech>>
<<speech "Josh">> "Turn that off." <</speech>>
Gina lowered the music, not because of his tone but because she could read the room well enough to know he meant it.
<<speech "Gina">> "Okay. Quiet house. I can respect a habitat." <</speech>> She tapped another message. <<speech "Gina">> "We'll leave when Elsa gets back." <</speech>>
<<speech "Josh">> "You always do this?" <</speech>>
<<speech "Gina">> "Do what?" <</speech>>
<<speech "Josh">> "Walk in, fill the place with noise, drag everybody after you." <</speech>>
Gina's smile faded without becoming defensive. She set the phone down.
<<speech "Gina">> "I don't drag Elsa anywhere. I ask. She says yes when she wants to go." <</speech>>
<<speech "Josh">> "And when she doesn't, you send five people to ask again." <</speech>>
<<speech "Gina">> "No. I call someone else." <</speech>> She leaned forward, forearms on her knees. <<speech "Gina">> "That's the nice thing about knowing people, Josh. Nobody has to be trapped in one person's mood." <</speech>>
The sentence was not meant as an attack. Josh treated it as permission.
He saw every crowded bar Elsa had entered without him, every new name in her phone, every laugh from a room where his anger had no authority. Gina was the open door. She was the hand pulling people through it. Josh had learned to enjoy what the power did to women who thought they could carry Elsa beyond his reach, and Gina's confidence made her an especially satisfying target.
He stepped closer until she looked directly at him. Then he gathered his hatred, held the connection open, and willingly drove the power into her like a physical blow.
Gina slammed back against the couch. Her phone flew from her hand. Her spine bowed as the first wave locked every muscle at once, and a strangled gasp tore out of her before she could turn it into a curse. Heat bloomed scarlet across her chest, throat, and cheeks. Sweat appeared at her hairline. Her heartbeat accelerated so violently that she pressed one hand to her sternum as if she could hold it inside.
The power flooded her breasts next. Nipples hardened into painful points beneath the floral top; even fabric brushing them sent sharp sensation through her stomach. Then the wave crashed lower. Gina's thighs clamped around a brutal pelvic contraction. Another followed immediately, then another, squeezing her empty pussy while sudden wetness soaked through her panties and spread beneath her skirt.
<<speech "Gina">> "Wh-what the... my chest... fuck, why's my..." <</speech>>
The sentence broke into a moan she had not chosen. Gina tried to restart it, but the words kept changing places. Every beat of her heart struck directly between her legs. Her vision narrowed around Josh while the names on her phone, the people waiting for her, and the rooms beyond his house became distant facts behind one obscene physical emergency: her body needed contact with the man who had caused it.
Josh watched with open satisfaction. He had wanted the connector silenced, aroused, and trapped inside a body that answered him instead of the endless names in her phone. Seeing the effect visibly travel from her face to her clenched thighs made the choice better.
<<speech "Josh">> "I'm keeping the smile and the ass. The rest gets simpler. Elsa doesn't need a connector—she needs a dumb party bimbo who invites whoever I point at and forgets why." <</speech>>
When Gina reached for her phone, he stepped on it before she could pick it up.
<<speech "Gina">> "M-move... no, wait... don't come closer. I can't..." <</speech>> Her voice shook and lost the shape of a command. <<speech "Gina">> "Elsa will... hear. Everyone will. I know... so many... um... names." <</speech>>
<<speech "Josh">> "Everyone." <</speech>> He repeated the word with contempt. <<speech "Josh">> "That's your whole trick, isn't it? Always another friend. Another room. Another crowd to hide inside." <</speech>>
<<speech "Gina">> "I don't... hide. I... what were we talking about?" <</speech>>
<<speech "Josh">> "Then show me." <</speech>>
He opened the outfit bag beside the chair. Gina had packed two possible looks because the night had already changed twice: a black-and-white striped halter with purple lace, and a red strappy set a dancer friend had insisted she borrow.
Josh held up the first outfit.
<<speech "Josh">> "Put it on." <</speech>>
<<speech "Gina">> "Go to... hell. Why am I... taking it? I didn't... did I say yes?" <</speech>>
Her hands took the outfit.
The horror of that movement sobered her for half a second. She stared at her own fingers, then at Josh. Her body was not hypnotized. It was worse than that. She understood everything and remained trapped inside nerves that treated the possibility of his attention like water after days without it.
He made her change in front of him.
The striped halter framed her chest. Purple lace sat low across her hips. Tan heels raised her legs as he pushed her onto the white chair.
<<speech "Josh">> "Open them." <</speech>>
Gina held his gaze as she spread her legs.
<<speech "Gina">> "I'm gonna... ruin... you? That sounded... smart. Was that mine?" <</speech>>
<<speech "Josh">> "Start with yourself." <</speech>>
<video src="img/Gina/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her fingers pulled the purple lace aside and worked frantically between her folds. Gina bit down on every sound she could. Josh watched from across the room, giving her nothing but his stare and letting the need punish her for him.
She came with a strangled cry she could not suppress. Relief lasted less than a breath. The heat rose again, deeper and more demanding.
Josh threw the red set beside her.
<<speech "Josh">> "Change." <</speech>>
<<speech "Gina">> "You like... costumes. I look... pretty? No, I was insulting... something." <</speech>>
He crossed the space and caught her jaw.
<<speech "Josh">> "I like watching the friend everybody follows forget the point halfway through a sentence. Keep smiling, bimbo. That's the useful part of Gina." <</speech>>
The red straps replaced the halter. Black thigh-highs climbed her legs. Josh pushed her onto the white couch, pulled the top away from her breasts, and drove his fingers into her.
<video src="img/Gina/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Gina arched despite herself. Her body chased every brutal curl of his fingers. She kept talking whenever breath returned, naming people who would notice she was late, places she was expected, all the connections that meant she was not alone.
Josh used each name as another reason to hurt her.
<<speech "Josh">> "Say one more." <</speech>> His fingers drove deeper. <<speech "Josh">> "I'll make you forget why you know them." <</speech>>
Gina's next name dissolved into a scream.
When he finally stopped, he did it abruptly. Need left her twisting against empty cushions.
<<speech "Josh">> "Get dressed." <</speech>>
He made her restore the floral top and black skirt, fix her hair, pack both outfits, and wipe every trace of wetness from the chair. Then he placed her phone in her palm.
Five new messages waited. Gina stared at the names. For a frightening second, none of them meant anything.
The recognition returned—but slowly.
<<speech "Josh">> "Elsa isn't coming." <</speech>>
<<speech "Gina">> "Elsa's... coming? You don't... know. I don't know either. That's... funny." <</speech>> A small giggle escaped before she understood why.
<<speech "Josh">> "Go transform somebody else's room." <</speech>> He opened the door. <<speech "Josh">> "This one belongs to me." <</speech>>
<<elseif _s is 2>>
Gina chose not to disappear.
She kept accepting invitations, inventing detours, adding strangers to tables because they looked interesting. She laughed louder than before. She refused to let one room in Josh's house rewrite the whole city.
But every crowded night ended with her body remembering the silence after his stare.
When Josh appeared at her apartment, Gina had already changed out of her rain-darkened clothes. She stood beside the white sofa and floral wall art in a black waffle-knit off-shoulder crop top, maroon lace panties, one fingerless glove, and the layered bow-and-heart necklace at her chest. Her tattoo showed above the lace as she faced the man she now understood was deliberately hunting Elsa's friends.
<img src="img/Gina/Corr1.jpg">
<<speech "Gina">> "You have ten... seconds. I counted. Ten is... after nine. Leave." <</speech>>
<<speech "Josh">> "Or what? You call everybody?" <</speech>>
<<speech "Gina">> "I already... called." <</speech>> She lifted her phone, staring at the screen as if it might finish for her. <<speech "Gina">> "Three people know. Three... pretty people? No, witnesses. That's the word." <</speech>>
The idea of witnesses gave Josh more resentment to use, but he was fully in control of the choice. Gina saw the pleasure in his face and turned away before he could establish the connection.
Josh caught her chin, forced her eyes back, and deliberately hit her with a second concentrated wave.
Gina's knees struck the rug beside the white sectional. Her body seized around the impact; shoulders pulled back, stomach knotted, and a hot flush rolled under her wet hair. Her mouth filled with saliva while breath came in ragged little gasps. Nipples tightened so sharply beneath the black knit that she cried out when the fabric shifted.
Then her pelvis began contracting. The first spasm bent her forward against Josh's grip. The next three came fast enough to blur together, pumping fresh wetness through the maroon lace and down her inner thighs. Her clit throbbed with every pulse of her racing heart. She gripped his wrist and tried to wrench free, but the rest of her body leaned toward the source of the pain and promised relief.
The three people who knew Josh was there remained in her memory, but their names had become hard to hold. The power buried each beneath the immediate physical knowledge of his body standing over her.
<<speech "Gina">> "I know... people. Lots of people. Mara and... and..." <</speech>> Her breath broke; a dazed smile appeared when no second name came. <<speech "Gina">> "You haven't taken... what were you taking?" <</speech>>
<<speech "Josh">> "Not yet." <</speech>>
<img src="img/Gina/Corr3.jpg">
He tore away the black top and maroon lace — and made her stand against the plain bright wall first, in nothing but the green lace garter set he'd pulled from her drawer, posing with her own hands dragging the green panties down her hips for him to look at, because he wanted to watch her do it herself. Only then did he find the red strappy panties and black stockings Gina had set aside for another night. He forced them onto her but left her upper body bare. Gina spat a curse at him. Josh opened his trousers and shoved her toward the floor.
<<speech "Josh">> "Use the mouth that keeps inviting people into my life." <</speech>>
<video src="img/Gina/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Gina remained furious through every movement. Her eyes accused him even as her lips and tongue worked with desperate focus. When his hand guided her deeper, her fingers dug into his thigh hard enough to leave marks.
Josh dragged her up onto the light-gray couch afterward. Wet hair spread around her head; the chain choker framed the throat he had just used. She smiled once—not from happiness, but from the body-high twisting every humiliation into reward.
The fact that she could feel the smile terrified her more than the rest.
<<speech "Gina">> "Somebody's... coming. I called a... girl? Guy? Um... somebody pretty." <</speech>>
<<speech "Josh">> "Then smile for them." <</speech>>
<video src="img/Gina/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
His finish struck her forehead, cheeks, lips, and tongue. Gina licked the strands because the need demanded it. The wide smile returned while a conscious part of her watched from farther away.
Josh bent close enough that she could smell rain on his shirt.
<<speech "Josh">> "How many friends does it take to put you back together?" <</speech>>
<<speech "Gina">> "Friends... put together? I like... together. Bimbos don't need... pieces, right?" <</speech>> She giggled, then looked frightened by the word that had come so easily.
Gina tried to answer. She pictured a bartender, a driver, a girl with a spare key, a boy who always brought speakers. She knew each face. The names slipped away before they reached her mouth.
Josh left when someone buzzed downstairs.
Gina opened the door to a friend she had invited for protection and could not remember why she had called.
<<elseif _s is 3>>
Gina stood in Josh's kitchen with her phone in one hand and no idea whom she had been texting. She had been heading elsewhere before stopping for Elsa and wore red lace beneath her coat: bra, thong, and garter belt against the light cabinets and marble counter, silver heart pendant at her throat, rose tattoos covering both arms. The conditioning had made her remove the coat while she waited, presenting the private outfit before Josh even entered.
<img src="img/Gina/Corr2.jpg">
The screen held a half-written invitation: **Come through. Elsa might—**
Nothing followed. Her thumb hovered over the keyboard while the bright kitchen remained painfully still around her.
She had come to collect Elsa for a drive that had become drinks that had become a late dinner because Gina had met someone whose cousin knew a place still serving. That was how her life worked. One connection opened into another until an empty evening filled itself.
Now the connections were breaking faster than she could follow them.
Josh entered behind her.
Gina turned. The old social reflex raised a smile to her mouth. It stayed there even after fear reached her eyes.
<<speech "Gina">> "Hii... do you know where... um... who?" <</speech>>
Her conditioned body recognized him. Heat rolled through her before he even stopped walking.
<<speech "Josh">> "Where who is?" <</speech>>
Gina looked down at the unfinished message.
<<speech "Gina">> "I had a friend. For... something fun, I think." <</speech>> Her smile trembled, then brightened without reason. <<speech "Gina">> "I always have... people. Pretty people. Names are hard." <</speech>>
<<speech "Josh">> "Not in that head anymore. I kept the party smile and scooped out the guest list." <</speech>>
Josh enjoyed the conditioned response for a moment, then caught her gaze and willingly struck her with the full power again.
Gina convulsed where she stood. Her back arched away from the marble counter; the red lace strained across breasts that hardened and flushed beneath it. Her phone slipped from fingers gone numb. A wave of heat rolled from her throat to her stomach, then drove downward with enough force to make both knees buckle.
Her pussy clenched repeatedly beneath the red thong. Wetness flooded the lace and ran through her dark pubic hair. Each contraction arrived tied to Josh's face, training the body to recognize him as both wound and cure. Gina tried to recover the unfinished invitation on her screen, but the letters swam. She could remember that people existed without reaching a single name.
Josh let her absorb the full hit before taking the phone and placing it face-down on the counter. He stripped the red lingerie from her in the center of the kitchen and sat her naked on the white chair with her legs forced high and wide.
For one last moment she fought to fill the silence.
<<speech "Gina">> "We could go... somewhere shiny. I know a... a... um..." <</speech>>
<<speech "Josh">> "Shut up." <</speech>>
He drove into her.
<video src="img/Gina/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The sentence vanished. Gina's mouth remained open, but only broken sounds came out. Josh used the chair as a frame, holding her open while each deep thrust knocked another face loose from the map inside her.
She saw Elsa for an instant. Kali laughing. Jade checking the time. A dozen people leaning together across borrowed tables. Gina had never owned those rooms. She had made them meet.
<<speech "Gina">> "They need... Gina. Gina's fun. I'm... Gina, right?" <</speech>> The words surfaced from somewhere deep and frightened, then ended in a soft bimbo giggle.
Josh gripped her jaw and made her look at him.
<<speech "Josh">> "No. They needed a door. I broke it." <</speech>>
Josh held the sustained eye contact and deliberately drove another surge through her while he remained deep inside.
Gina convulsed around him. Her legs shook against the chair, breasts bouncing as her back bowed, pussy clamping in hard rhythmic spasms that dragged an involuntary orgasm through her. The pleasure was not gentle enough to enjoy; it was a white physical blast that erased language while reinforcing Josh as its center.
The city of names in her mind went dark block by block. Elsa, Kali, Jade, the driver, the bartender, the friend with the key—each face flashed once and lost its label beneath the next contraction. Her awareness narrowed to wet pressure, Josh's face, and the brutal relief he kept just beyond reach.
<video src="img/Gina/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He finished deep inside her. Thick white cum leaked through her dark pubic hair as he withdrew. Gina looked down at it with vacant fascination, chest rising and falling. The wide friendly smile returned first, followed by a soft giggle and the empty posture of the party bimbo Josh had planned: socially bright, physically eager, and incapable of holding a name or independent purpose.
Josh held up her phone.
<<speech "Josh">> "Who were you inviting?" <</speech>>
Gina stared at the unfinished message.
<<speech "Gina">> "Every... one. That's... lots." <</speech>>
<<speech "Josh">> "Name one." <</speech>>
Her smile stayed fixed.
No name came.
He dressed her himself—not tenderly, but efficiently, forcing the floral top down, fastening the black skirt, putting the familiar connector back into circulation. Before opening the door, he deleted the unfinished invitation.
<<speech "Josh">> "Go find a party." <</speech>>
Gina stepped into the hall and looked both ways as though either direction might contain instructions.
Then she heard distant music and followed it.
<</if>>
</div>
<hr>
<div style="text-align:center;">
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
<p style="color:#ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
<p style="color:#00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Before the review, Caldwell and Gina had never spoken. He knew her by sound first — the laugh carrying down the corridor of the arts annex before he ever saw the girl it belonged to. Elsa's high-energy friend. The one who dragged the whole circle out dancing on a whim because the day had been long, who charmed bouncers, who got the shy freshmen onto the floor, who treated every week like it owed her a story. The campus ran on a current of small stresses, and Gina was the voltage. Somebody's roommate was sad; Gina knew the exact bar with the exact playlist to fix it. Elsa was drowning in Josh-drama; Gina had the whole night planned by noon. She chased the next thrill the way other people chased sleep — because being still let the noise catch up — and underneath all of it, buried where nobody checked, she was the kindest of the whole loud circle.
Caldwell had no opinion about any of that. He had a file.
Gina's name appeared four times in one campus-security review — the homecoming-weekend incident, still open: an unregistered rooftop party that had ended with a fire door propped, a foam machine corroding an HVAC intake, and a dean's parking space occupied by six inflatable flamingos. She had not bought the foam machine, chartered the party bus, coaxed the DJ down from the radio station, or walked the freshman up the service stairs on a dare. She simply knew the person who knew each person who had. When Caldwell traced the access chain backward, every branch passed through Gina without making her responsible for any single decision.
That made her more interesting than the violation itself.
Caldwell summoned her for a required witness interview. The notice cited his authority as university security manager, listed the incident reference, and instructed her to report to the furnished training apartment used for incident reconstruction. There was no invitation to accept and no benefit promised for attending.
Gina arrived in her floral off-shoulder top and short black skirt, annoyed but cheerful about it, the way she was cheerful about almost everything.
<img src="img/Gina/Normal.jpg">
<<speech "Gina">> "Okay, so — I already explained this to your desk guy." <</speech>> She dropped onto the chair like the interview was a couch. <<speech "Gina">> "Mara had the ride, but she got the key from Leon. Leon only knew the roof existed because Nia's roommate used to work in that building." <</speech>>
<<speech "Caldwell">> "And which of them did you introduce?" <</speech>>
<<speech "Gina">> "Mara to Leon. Nia to Mara. I met the freshman that night — cute, terrified, hiding in the stairwell. Nobody hides at my party." <</speech>> She spread her hands, grinning. <<speech "Gina">> "I know people. I like people. That's a crime now?" <</speech>>
<<speech "Caldwell">> "No. It means you are the shortest path between them." <</speech>>
The grin flickered — first time all night something she'd said hadn't landed as a joke.
He seated her on the light-gray sectional and displayed the access timeline on the wall screen. Names appeared as connected nodes. Gina lit up anyway, correcting the official order at speed, delighted to have a puzzle: one text had followed another, an introduction had happened a while back at one of her nights out, and the supposed stranger was a friend of a friend from a coffee shift — <<speech "Gina">> "oh, that's Danny's girl, she's hilarious—" <</speech>> — each connection offered freely, generously, the whole map of her world handed to him because he'd asked.
Caldwell made her repeat each connection while the screen pulsed softly behind the names.
At minute fourteen, a low tone marked every introduction.
At minute twenty-seven, the names began fading unless Caldwell repeated them.
At minute thirty-eight, his recorded voice started supplying the correct path before Gina could answer.
At minute forty-nine, the network vanished. Only Caldwell's face remained on the screen while the tone continued beneath his words.
<<speech "Caldwell">> (recording) "Trace the contact. Personal judgment clears. The authorized interviewer defines the relevant connection. Private intervals are excluded from recall. The official reconstruction remains complete." <</speech>>
Gina's posture slackened. Her dark eyes stayed open without focusing.
Caldwell stood over her.
<<speech "Caldwell">> "Trace the contact." <</speech>>
<<speech "Gina">> "Who are we tracing?" <</speech>> Her voice was flat.
The administrative mask disappeared from his face.
<<speech "Caldwell">> "No one yet. Floral top off. Put on the teal straps. Lie back and show me those tits." <</speech>>
He had selected the teal cage lingerie before she arrived. Thin straps crossed her torso and linked to a matching garter; sheer nude stockings climbed her thighs while her breasts remained bare. Controlled Gina reclined against the gray sectional exactly where he placed her.
<video src="img/Gina/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Arch. Mouth open. Let me squeeze them. That's all this interview needs from you now." <</speech>>
His hands moved over her breasts and tightened the straps against her skin. Gina's expression shifted through physical pleasure without recovering awareness or forming a memory.
Caldwell moved her into the adjoining white bedroom. He replaced the teal set with red panties pulled aside and black lace-top stockings, then laid her on her back with her legs spread.
<<speech "Caldwell">> "Hold your tit. Keep that cunt open. I'm going to eat it until you shake, and you'll remember reviewing camera angles." <</speech>>
<video src="img/Gina/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Gina's head tipped back as his mouth worked between her thighs. One hand moved over her breast and neck; the other brought a finger to her open lips. Her hips shifted toward him, the body's response sealed behind the controlled state.
When Caldwell finished, he cleaned her, restored the floral top and black skirt, removed every unfamiliar garment, and returned her to the sectional with the access map on-screen.
<<speech "Caldwell">> (recording) "You reviewed the surveillance timeline, reconstructed the seating and movement shown on camera, and gave a complete statement. The interview was formal and uneventful. Private intervals contain no memory." <</speech>>
He waited for her breathing to normalize.
<<speech "Caldwell">> "The interview is concluded." <</speech>>
Gina blinked and immediately pointed at one node on the restored map.
<<speech "Gina">> "That line is still wrong. I didn't give her the key. I introduced her to someone who later met the person with the key." <</speech>>
Caldwell corrected the diagram.
Her memory, initiative, and social intelligence remained intact. She left believing she had survived an irritating but ordinary security interview.
She did not remember the teal straps, the bedroom, or Caldwell between her legs.
<<elseif _s is 2>>
A discrepancy in another witness statement gave Caldwell the authority to call Gina back.
The follow-up notice reached Gina while she was at home beside a white sofa and colorful floral wall art, wearing a black waffle-knit crop top, maroon lace panties, one fingerless glove, and the layered bow-and-heart necklace a friend had given her. The castle tattoo at her hip remained visible as she read the mandatory language twice and swore at the screen.
<img src="img/Gina/Corr1.jpg">
She pulled a skirt over the maroon lace and reported as ordered. The notice required her to reconstruct the route from the bright interior corridor to the industrial service exit and identify when each person joined the chain. Gina arrived frustrated, carrying screenshots that proved her version. Caldwell now thought of her as both witness and instrument; Gina still regarded him as an intrusive authority she intended to correct and leave behind.
<<speech "Gina">> "Your other witness is combining two nights. I know because the driver in that screenshot was in another city the first time." <</speech>>
<<speech "Caldwell">> "Then we will establish the sequence precisely." <</speech>>
He placed the tablet in front of her. Names, timestamps, door-camera stills, and the same low tone repeated through a fifty-two-minute review. Gina followed the contact chain until the people in her own screenshots became meaningless without Caldwell's voice assigning their positions.
<<speech "Caldwell">> "Trace the contact." <</speech>>
Her expression emptied.
<<speech "Gina">> "Who are we tracing?" <</speech>>
Caldwell pulled her top over her head.
<<speech "Caldwell">> "Nobody. Kneel. Look up. Suck my cock." <</speech>>
Gina knelt topless on the light wood floor, dark hair in a high messy bun, rose tattoos exposed across both shoulders. Caldwell gripped the back of her head while she took him into her mouth.
<video src="img/Gina/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Deeper. Keep those eyes on me. This is the only sequence your mouth needs to remember." <</speech>>
He walked her through the service exit while she remained controlled, making the movement part of the route-reconstruction cover. Against the concrete and stone outside, he forced her back to her knees.
<<speech "Caldwell">> "Open wide. Catch it. Then clean every drop." <</speech>>
<video src="img/Gina/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Thick cum landed across her lips, chin, and extended tongue. Gina used red-nailed fingers to guide him back into her mouth, licking and sucking until his skin was clean.
Caldwell washed her face, restored her clothes, and installed the harmless reconstruction: they had checked interior timestamps, walked the exterior route, tested sightlines, and resolved the conflicting statement.
When released, Gina looked at the service door and resumed the argument exactly where memory said it belonged.
<<speech "Gina">> "The camera misses anyone who comes from that side. That's why your count is wrong." <</speech>>
She was correct. Caldwell recorded the observation and dismissed her.
Gina remembered proving her account. She did not remember what her mouth had done along the same route.
<<elseif _s is 3>>
The final summons concerned no new violation.
Caldwell classified it as closure of the original security review and required Gina to verify the consolidated statement before the file could be archived. She reported to the same furnished training apartment expecting signatures, corrections, and another hour of institutional inconvenience.
By then, the trigger had attached itself to the way she understood people. Every introduction she recalled strengthened Caldwell's authority to define the next one.
The last conditioning sequence lasted fifty-eight minutes.
<<speech "Caldwell">> (recording) "Preserve every useful contact. Continue making spontaneous introductions. When the authorized interviewer says trace the contact, identify the selected person, lead the connection where directed, and forget all private service. The official memory replaces the controlled interval." <</speech>>
Caldwell closed the statement folder.
<<speech "Caldwell">> "Trace the contact." <</speech>>
Gina went blank.
<<speech "Gina">> "Who are we tracing?" <</speech>>
Caldwell first made her change into the red lace bra, thong, and garter belt he had prepared. She stood in the model apartment's light kitchen with her arms crossed, silver heart pendant at her throat, tattoos displayed while she awaited the next instruction.
<img src="img/Gina/Corr2.jpg">
The photograph-like compliance pose gave Caldwell a clean record of the public connector reduced to his private evidence. Then he stripped the red lace away and pushed her onto her back on the bedroom sheets.
<<speech "Caldwell">> "Me. Legs open. Take my cock." <</speech>>
Gina lay fully nude beneath him, dark hair spread across the pillows, one hand on her breast as Caldwell entered her in a steady missionary rhythm.
<video src="img/Gina/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "All those people in your head, and I decide which one matters. Right now it's the bastard fucking this empty cunt." <</speech>>
He moved her to the light-gray sectional in the loft living room and again placed her on her back, legs raised and held wide. Her dark pubic hair remained visible beneath the deep thrusts.
<<speech "Caldwell">> "Stay open. I'm filling you, and you'll forget why it leaks." <</speech>>
<video src="img/Gina/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Caldwell withdrew. Thick white cum coated her pubic hair and dripped onto her lower stomach. He made her hold the position until he finished inspecting what he had done.
Then he cleaned her, dressed her, and replaced the controlled interval with the memory of checking every page, correcting two timestamps, and signing the final statement.
Gina woke seated at the table with a pen in her hand.
<</if>>
</div>
<hr>
<div style="text-align:center;">
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
<p style="color:#ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
<p style="color:#00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
</div><<silently>>
/* ============================================================
1. RESET PREVIOUS ECLIPSE STATE
============================================================ */
/* The first midnight eclipse has happened — unlocks Kane Quests */
<<set $firstEclipseDone to true>>
<<set $eclipseActionBonus to { nathan: 0, josh: 0, jasper: 0, caldwell: 0 }>>
<<set $extraActions to { nathan: $vices.nathan.slaves.length, josh: 0, jasper: 0, caldwell: 0 }>>
<<set $activeEclipse.event to "None">>
<<set $activeEclipse.nathanWeb to false>>
<<set $activeEclipse.joshPredation to false>>
<<set $activeEclipse.jasperBastion to null>>
/* ============================================================
2. SELECT THEME
============================================================ */
<<set _themes to [
{
name: "The Crimson Fever",
desc: "The moon bleeds red, driving students into a manic state of emotional vulnerability.",
mech: "RESONANCE SURGE: All positive Resonance gains are doubled while this theme is active."
},
{
name: "The Static Void",
desc: "A supernatural fog deadens technology and isolation spreads through the campus.",
mech: "FIND: 100% guaranteed success on all targets. CHAINS: All Chain Reactions are disabled."
},
{
name: "The Carnal Fever",
desc: "The air is thick with pheromones. Instincts are sharp; logic is weak.",
mech: "LUST BUFF: All NPCs have +2 Lust Weakness (max 5). JOSH: Finds all students automatically. SHIELDS: Vice Shields only last 1 turn."
},
{
name: "The Serene Collective",
desc: "A peaceful hum settles over everyone, making them crave a leader to follow.",
mech: "JASPER BUFF: Up to three of his owned girls (Keys and Spares first) receive 3-turn shields. CONQUER: Jasper gets +10% on conquest rolls."
}
]>>
<<set _pick to _themes.random()>>
<<set $activeEclipse.theme to _pick.name>>
<<set $activeEclipse.desc to _pick.desc>>
<<set $activeEclipse.mechanics to _pick.mech>>
/* Serene Collective: shield up to three of the girls under Jasper's
influence — his Keys and Spares first, then others. Fully conquered
girls are locked and never consume slots. */
<<if $activeEclipse.theme === "The Serene Collective" and !$vices.jasper.isEliminated>>
<<set _serenePool to $roster.filter(function(c) {
return c.stages.jasper gt 0 and c.shieldTimer === 0
and !Object.values(c.stages).some(function(s) { return s >= 3; });
})>>
<<set _serenePicks to _serenePool.filter(c => $vices.jasper.keys.includes(c.id) or $vices.jasper.backups.includes(c.id))>>
<<set _sereneRest to _serenePool.filter(c => !$vices.jasper.keys.includes(c.id) and !$vices.jasper.backups.includes(c.id))>>
<<set _sereneRest.shuffle()>>
<<set _sereneChosen to _serenePicks.concat(_sereneRest).slice(0, 3)>>
<<for _srG range _sereneChosen>>
<<set _srG.shieldTimer to 3>>
<<set _srG.shieldedBy to "jasper">>
<</for>>
<</if>>
/* ============================================================
3. SELECT SCRIPTED EVENT
Pool built dynamically — events tied to a specific master
are only added if that master is still active.
============================================================ */
<<set _activeMasters to ["nathan", "josh", "jasper", "caldwell"].filter(m => !$vices[m].isEliminated)>>
<<set _eclipsePool to [5, 6, 7, 8, 9]>>
<<if !$vices.caldwell.isEliminated>> <<run _eclipsePool.push(1)>> <</if>>
<<if !$vices.nathan.isEliminated>> <<run _eclipsePool.push(2)>> <</if>>
<<if !$vices.josh.isEliminated>> <<run _eclipsePool.push(3)>> <</if>>
<<if !$vices.jasper.isEliminated>> <<run _eclipsePool.push(4)>> <</if>>
<<set _eRoll to _eclipsePool.random()>>
<<set _eventTitle to "">>
<<set _eventDesc to "">>
/* EVENT 1: DIRECTORATE MANDATE — Caldwell only */
<<if _eRoll is 1>>
<<set _eventTitle to "Directorate Mandate">>
<<set $detentionTarget to "ALL_STUDENTS">>
<<set _eventDesc to "Caldwell has been granted administrative authority. He has 100% availability on all student NPCs for the duration of this Eclipse.">>
/* EVENT 2: EMPATHIC WEB — Nathan only */
<<elseif _eRoll is 2>>
<<set _eventTitle to "Empathic Web">>
<<set $activeEclipse.nathanWeb to true>>
<<set _eventDesc to "Nathan's resonance forms a chain of trust. If he targets a friend of a subject he has already conquered, his influence is nearly absolute (+3 Multiplier).">>
/* EVENT 3: APEX PREDATION — Josh only */
<<elseif _eRoll is 3>>
<<set _eventTitle to "Apex Predation">>
<<set $activeEclipse.joshPredation to true>>
<<set _eventDesc to "Once per day, when a rival successfully targets a girl, Josh can steal the conquest out from under them: their stage gain is cancelled, Josh rises one stage on his own track and takes ownership. The ambushed master may pay 40% Resonance to shield the attempt, aborting the conquest and refunding the action.">>
/* EVENT 4: HAVENWOOD BASTION — Jasper only */
<<elseif _eRoll is 4>>
<<set _eventTitle to "Havenwood Bastion">>
/* Fully conquered girls are locked and never enter the Bastion. */
<<set _candidates to $roster.filter(c =>
c.stages.jasper > 0
and !Object.values(c.stages).some(s => s >= 3))>>
<<if _candidates.length lt 3>>
<<set _candidates to $roster.filter(c => !Object.values(c.stages).some(s => s >= 3))>>
<</if>>
<<set $activeEclipse.jasperBastion to _candidates.randomMany(3).map(c => c.id)>>
<<set _names to $activeEclipse.jasperBastion.map(id => $roster.find(r => r.id === id).name).join(", ")>>
<<set _eventDesc to "Jasper has sealed " + _names + " within the Bastion of Havenwood. They cannot be located by any other Master this Eclipse.">>
/* EVENT 5: ADMINISTRATIVE OVERDRIVE — all active masters */
<<elseif _eRoll is 5>>
<<set _eventTitle to "Administrative Overdrive">>
<<for _pID range _activeMasters>>
<<set $eclipseActionBonus[_pID] to 1>>
<<set $extraActions[_pID] to $extraActions[_pID] + 1>>
<</for>>
<<set _eventDesc to "Efficiency protocols engaged. Every active Master can now take TWO actions per turn.">>
/* EVENT 6: THE GREAT PURGE — only fully conquered girls count
and only a fully conquered girl may be reset. */
<<elseif _eRoll is 6>>
<<set _eventTitle to "The Great Purge">>
<<set _purgedNames to []>>
<<for _pID range _activeMasters>>
<<set _his to $roster.filter(c => c.owner === _pID and c.stages[_pID] gte 3)>>
<<if _his.length gte 5>>
<<set _lost to _his.random()>>
<<set _lIdx to $roster.findIndex(c => c.id === _lost.id)>>
<<run setup.noteReset($roster[_lIdx], ["nathan", "josh", "jasper", "caldwell"])>>
<<set $roster[_lIdx].owner to null>>
<<set $roster[_lIdx].stages.nathan to 0>>
<<set $roster[_lIdx].stages.josh to 0>>
<<set $roster[_lIdx].stages.jasper to 0>>
<<set $roster[_lIdx].stages.caldwell to 0>>
<<run _purgedNames.push($vices[_pID].name + " loses " + _lost.name)>>
<</if>>
<</for>>
<<set _eventDesc to "The Directorate has forcibly reset one fully conquered subject per Master who holds 5 or more fully conquered girls." + (_purgedNames.length > 0 ? " Affected: " + _purgedNames.join(". ") : " No Masters were affected.")>>
/* EVENT 7: THE SCAPEGOAT — one random active master */
<<elseif _eRoll is 7>>
<<set _victim to _activeMasters.random()>>
<<set _eventTitle to "The Scapegoat: " + $vices[_victim].name>>
<<set _scapegoatLost to []>>
/* Ownership can no longer be orphaned by this event: owner marks
only full conquests, so a Stage 1 girl never carries one. Girls
conquered by a rival are left untouched. */
<<for _i to 0; _i lt $roster.length; _i++>>
<<if $roster[_i].stages[_victim] is 1 and $roster[_i].owner is null>>
<<run _scapegoatLost.push($roster[_i].name)>>
<<run setup.noteReset($roster[_i], [_victim])>>
<<set $roster[_i].stages[_victim] to 0>>
<</if>>
<</for>>
/* Author ruling: compensation is +1 Extra Action, with a 25% roll
for +2. The roll happens once, when the event fires; the result
is the bonus for the whole Eclipse. */
<<set _scapeBonus to (random(1, 100) lte 25 ? 2 : 1)>>
<<set $eclipseActionBonus[_victim] to _scapeBonus>>
<<set $extraActions[_victim] to $extraActions[_victim] + _scapeBonus>>
<<set _eventDesc to $vices[_victim].name + " loses all Stage 1 progress" + (_scapegoatLost.length > 0 ? " (" + _scapegoatLost.join(", ") + ")" : "") + ", but gains +" + _scapeBonus + " Extra Action" + (_scapeBonus gt 1 ? "s" : "") + " as compensation.">>
/* EVENT 8: THE DIRECTOR'S PET — active master with most NPCs */
<<elseif _eRoll is 8>>
<<set _leader to _activeMasters.sort((a,b) => $roster.filter(c=>c.owner===b).length - $roster.filter(c=>c.owner===a).length)[0]>>
<<set _eventTitle to "The Director's Pet: " + $vices[_leader].name>>
/* Author ruling: the favor is +1 Extra Action per turn, with a 25%
roll for +2. The roll happens once, when the event fires; the
result is the bonus for the whole Eclipse. */
<<set _petBonus to (random(1, 100) lte 25 ? 2 : 1)>>
<<set $eclipseActionBonus[_leader] to _petBonus>>
<<set $extraActions[_leader] to $extraActions[_leader] + _petBonus>>
<<set _eventDesc to $vices[_leader].name + " is highly favored by the Directorate. He gains +" + _petBonus + " Extra Action" + (_petBonus gt 1 ? "s" : "") + " per turn for this Eclipse.">>
/* EVENT 9: RESONANCE SURGE — all active masters hit 100 gauge */
<<elseif _eRoll is 9>>
<<set _eventTitle to "Resonance Surge">>
<<for _pID range _activeMasters>>
<<set $vices[_pID].gauge to 100>>
<</for>>
<<set _eventDesc to "A massive energy spike crackles across the campus. All active Power Gauges have been set to 100% immediately.">>
<</if>>
<<set $activeEclipse.event to _eventTitle>>
<</silently>>
<h1 style="text-align:center; color: #ff0000; font-size: 3em; text-shadow: 0 0 20px #f00;">ECLIPSE PHASE INITIATED</h1>
<div class="narrative" style="border: 4px double #f00; padding: 25px; background: #100; line-height: 1.6; font-family: 'Courier New', Courier, monospace;">
<h2 style="color: #ffaa00; border-bottom: 1px solid #ffaa00;">ATMOSPHERE: <<print $activeEclipse.theme>></h2>
<p style="font-size: 1.1em; color: #eee;"><<print $activeEclipse.desc>></p>
<div style="background: rgba(255,170,0,0.1); padding: 10px; border-radius: 5px; color: #ffaa00;">
<<print $activeEclipse.mechanics>>
</div>
<br>
<h2 style="color: #00ffcc; border-bottom: 1px solid #00ffcc;">EVENT: <<print $activeEclipse.event>></h2>
<p style="font-size: 1.1em; color: #eee;"><<print _eventDesc>></p>
<div style="text-align:center; margin-top: 50px;">
[[ADAPT TO THE NEW WORLD|Hub]]
</div>
</div><h1 style="text-align:center; color: #00ffcc; text-shadow: 0 0 10px #00ffcc;">HEART'S REFLECTION</h1>
<<speech "Nathan">>
"These are the girls who mean everything to me.
Some I've known forever, some I've met along the way, but all of them deserve to feel safe, loved, and protected.
I watch over them because the world can be cruel, and I refuse to let it touch them.
Here’s who they are to me."
<</speech>>
<div class="bio-grid-2col">
<!-- 1. EVA -->
<div class="bio-card">
<img src="img/Eva/Normal.jpg">
<div>
<h3>Eva</h3>
<p>Eva is my best friend from high school, the one who's always been there through everything. She's warm, witty, and fiercely loyal—always the first to stand up for me. She's not just a friend; she's family, the kind of person who makes you believe good people still exist.</p>
</div>
</div>
<!-- 2. KYLIE -->
<div class="bio-card">
<img src="img/Kylie/Normal.jpg">
<div>
<h3>Kylie</h3>
<p>Kylie is my little $relation, full of energy and that teasing spark that keeps me laughing even on bad days. She's sweet, affectionate, and looks up to me like I'm her hero. She deserves a big $malerel who'll always be there for her.</p>
</div>
</div>
<!-- 3. ISABELLA -->
<div class="bio-card">
<img src="img/Isabella/Normal.jpg">
<div>
<h3>Isabella</h3>
<p>Isabella is my childhood friend, the one I grew up with through all the awkward years. She's warm, intelligent, and kind-hearted. As Director Kane's niece, she carries a lot quietly, but with me, she's just Isabella—the girl who values real connections above everything.</p>
</div>
</div>
<!-- 4. ARIA (New) -->
<div class="bio-card">
<img src="img/Aria/Normal.jpg">
<div>
<h3>Aria</h3>
<p>Aria is my girlfriend — beautiful, kind, always putting others first. She helps Alina with wellness sessions, making everyone feel heard. She's the one who reminds me every day why I want to keep everyone safe. I love her more than anything… and I'll make sure she never has to worry again.</p>
</div>
</div>
<!-- 5. KAILEY (New) -->
<div class="bio-card">
<img src="img/Kailey/Normal.jpg">
<div>
<h3>Kailey</h3>
<p>Kailey is my next-door neighbour — always out running at dawn with that bright smile. She’s strong, driven, and full of life. We talk over the fence about everything and nothing. She makes the day feel lighter just by being around. I want her to know she can always come to me—no matter what.</p>
</div>
</div>
<!-- 6. LULU (New) -->
<div class="bio-card">
<img src="img/Lulu/Normal.jpg">
<div>
<h3>Lulu</h3>
<p>Lulu is my study partner — we meet up all the time to go over lit notes and debate themes. She’s smart, thoughtful, and has this gentle way of making even tough chapters feel easier. She always smiles when she sees me, and I want her to know she’s safe with me… always.</p>
</div>
</div>
<!-- 7. CHANEL -->
<div class="bio-card">
<img src="img/Chanel/Normal.jpg">
<div>
<h3>Chanel</h3>
<p>Chanel is the sociology professor and caretaker at Havenwood. She's deeply compassionate and self-sacrificing, always putting the foster kids first. She holds so much together for everyone else; I just wish she had someone to hold her when she needs it.</p>
</div>
</div>
<!-- 8. CAROLINA -->
<div class="bio-card">
<img src="img/Carolina/Normal.jpg">
<div>
<h3>Carolina</h3>
<p>Carolina is Jasper's foster sister at Havenwood, sweet and creative with a gentle heart. She's known too much instability in her life. She deserves a place where she never has to worry about being left behind, and I want to provide that.</p>
</div>
</div>
<!-- 9. CASEY -->
<div class="bio-card">
<img src="img/Casey/Normal.jpg">
<div>
<h3>Casey</h3>
<p>Casey is a former Havenwood foster kid who still comes around to help. She's sarcastic and sharp-tongued on the surface, but I can tell she's hiding a deep vulnerability. I want her to feel safe enough to let the walls down around me.</p>
</div>
</div>
<!-- 10. ALINA -->
<div class="bio-card">
<img src="img/Alina/Normal.jpg">
<div>
<h3>Alina</h3>
<p>Alina is the school psychologist—empathetic, patient, and non-judgmental. She’s tried to help so many people, even when they push back. She deserves someone who’ll appreciate her kindness instead of taking it for granted.</p>
</div>
</div>
<!-- 11. LILY -->
<div class="bio-card">
<img src="img/Lily/Normal.jpg">
<div>
<h3>Lily</h3>
<p>Lily is Josh’s younger $relation, sweet and trusting with a bubbly innocence. She needs protection from the harshness out there, and I want to be the one who gives it to her since Josh is often too angry to see it.</p>
</div>
</div>
<!-- 12. ELSA -->
<div class="bio-card">
<img src="img/Elsa/Normal.jpg">
<div>
<h3>Elsa</h3>
<p>Elsa is Josh’s older $relation, responsible and compassionate. She carries so much guilt and weight trying to fix her family. I want to be the person she can lean on without feeling like she's failing.</p>
</div>
</div>
<!-- 13. LANA (New) -->
<div class="bio-card">
<img src="img/Lana/Normal.jpg">
<div>
<h3>Lana</h3>
<p>Lana is Josh’s sharp-tongued cousin and law major — always debating, but she worries about him more than she lets on. She’s smart and loyal to family. I want her to know she doesn’t have to be the responsible one all the time… that she can let someone else carry the weight.</p>
</div>
</div>
<!-- 14. JADE -->
<div class="bio-card">
<img src="img/Jade/Normal.jpg">
<div>
<h3>Jade</h3>
<p>Jade is part of Elsa’s circle—the diligent, practical friend. She's always pushing for healthier boundaries for her friends. She deserves someone who’ll let her relax instead of always being the strong one.</p>
</div>
</div>
<!-- 15. KALI -->
<div class="bio-card">
<img src="img/Kali/Normal.jpg">
<div>
<h3>Kali</h3>
<p>Kali is Elsa’s teasing empath, the one who reads emotions instantly. She senses everyone’s pain but often hides her own behind a playful roast. I want her to feel seen and safe with me.</p>
</div>
</div>
<!-- 16. GINA -->
<div class="bio-card">
<img src="img/Gina/Normal.jpg">
<div>
<h3>Gina</h3>
<p>Gina is the high-energy party girl in Elsa’s circle, always dragging everyone out for fun. She chases thrills to escape stress—I want to be the steady, calm thing she can always come back to.</p>
</div>
</div>
<!-- 17. ANYA -->
<div class="bio-card">
<img src="img/Anya/Normal.jpg">
<div>
<h3>Anya</h3>
<p>Anya is Dr. Caldwell’s TA—diligent, respectful, and ambitious. She trusts guidance too easily, and I worry she's being used. She deserves someone who’ll value her heart without exploiting her hard work.</p>
</div>
</div>
<!-- 18. RAE -->
<div class="bio-card">
<img src="img/Rae/Normal.jpg">
<div>
<h3>Rae</h3>
<p>Rae is the rebellious sophomore who ends up in detention constantly. Underneath the attitude and the tattoos, she’s secretly insecure. She just needs someone who won’t give up on her, no matter how much she pushes back.</p>
</div>
</div>
<!-- 19. ADRIANA -->
<div class="bio-card">
<img src="img/Adriana/Normal.jpg">
<div>
<h3>Adriana</h3>
<p>Adriana is the campus security guard—assertive, practical, and strong. She thrives under structure, but she carries a lot of stress. She deserves someone who’ll let her drop her guard and feel protected for once.</p>
</div>
</div>
<!-- 20. KEISHA (New) -->
<div class="bio-card">
<img src="img/Keisha/Normal.jpg">
<div>
<h3>Keisha</h3>
<p>Keisha is the young Vice Director — stern but fair. She carries so much responsibility with quiet strength. I want her to know she doesn’t have to carry it all alone… that she can lean on someone who’ll protect her the way she protects this campus.</p>
</div>
</div>
<!-- 21. MARIE -->
<div class="bio-card">
<img src="img/Marie/Normal.jpg">
<div>
<h3>Marie</h3>
<p>Marie is the cheerful campus connector and event organizer. She treats everyone kindly and believes people can get along. She's the heart of any group—I want to be the one she always feels connected to.</p>
</div>
</div>
<!-- 22. BLAKE -->
<div class="bio-card">
<img src="img/Blake/Normal.jpg">
<div>
<h3>Blake</h3>
<p>Blake is the top cheerleader and campus “it girl.” She's guarded and secretly lonely after years of shallow attention. She needs real depth and a love that doesn't care about her status.</p>
</div>
</div>
<!-- 23. LACY -->
<div class="bio-card">
<img src="img/Lacy/Normal.jpg">
<div>
<h3>Lacy</h3>
<p>Lacy is the spoiled mayor’s daughter—entitled and manipulative on the surface. Deep down she craves something genuine that isn't tied to her father's power. I want to show her that.</p>
</div>
</div>
<!-- 24. CLAIRE (New) -->
<div class="bio-card">
<img src="img/Claire/Normal.jpg">
<div>
<h3>Claire</h3>
<p>Claire is the sassy school star — quick-witted and full of charisma. Behind the performance, she’s been hurt before. I want her to feel like she doesn’t have to perform anymore… that she can just be real with someone who won’t judge her.</p>
</div>
</div>
<!-- 25. MAYA -->
<div class="bio-card">
<img src="img/Maya/Normal.jpg">
<div>
<h3>Maya</h3>
<p>Maya is the university secretary—helpful, cheerful, and trusting. She assumes good intentions in everyone she meets. She deserves someone who’ll never betray that trust.</p>
</div>
</div>
<!-- 26. ADRIA (New) -->
<div class="bio-card">
<img src="img/Adria/Normal.jpg">
<div>
<h3>Adria</h3>
<p>Adria is the charismatic Student Council President — organized and diplomatic. I can see the pressure she carries to be perfect. I want her to feel safe enough to let go sometimes… to know there’s someone who’ll take care of things so she doesn’t have to.</p>
</div>
</div>
<!-- 27. CAPRICE -->
<div class="bio-card">
<img src="img/Caprice/Normal.jpg">
<div>
<h3>Caprice</h3>
<p>Caprice is the solitary university librarian—sharp-witted and sarcastic. She prefers books to people because books don't let you down. I want her to feel seen and understood without having to hide.</p>
</div>
</div>
<!-- 28. MELODY (New) -->
<div class="bio-card">
<img src="img/Melody/Normal.jpg">
<div>
<h3>Melody</h3>
<p>Melody is Jasper’s quiet friend from the book club — she’s the one who organizes those cozy library meetings and gets really passionate about stories. She’s shy, keeps to herself in groups, but I’ve seen how she lights up when she talks one-on-one. She seems lonely behind all those books, like she’s hiding from the world. I want her to feel like she belongs somewhere safe… somewhere she doesn’t have to be so guarded all the time.</p>
</div>
</div>
<!-- 29. MADI -->
<div class="bio-card">
<img src="img/Madi/Normal.jpg">
<div>
<h3>Madi</h3>
<p>Madi is the petite, curious journalism club reporter. She's tenacious and believes everyone has a story worth hearing. She's a bit naive about the dangers on campus—I want to be the one she can trust with her own story.</p>
</div>
</div>
<!-- 30. SAVANNAH (New) -->
<div class="bio-card">
<img src="img/Savannah/Normal.jpg">
<div>
<h3>Savannah</h3>
<p>Savannah is the girl who lights up every room. She’s the sunshine friend of literally everyone… including me. I want her to know she can always come to me when the world feels too heavy. I want to be the one who keeps that smile safe.</p>
</div>
</div>
</div>
<<speech "Nathan">>
"They’re all so different, but they all deserve the same thing: to feel safe. To feel loved. I’ll make sure of it. No matter what it takes."
<</speech>>
<div style="text-align: center; margin-top: 50px; padding-bottom: 50px;">
<span class="custom-link">[[I am ready to begin.|Hub]]</span>
</div><h1 style="text-align:center; color: #ff33cc; text-shadow: 0 0 10px #ff33cc;">PREDATOR'S GAZE</h1>
<<speech "Josh">>
"Look at all these girls walking around campus like they own the place.
Every single one of them acts like I'm invisible.
Too pretty, too smart, too pure, too busy with their perfect little lives to even glance my way.
They talk to Nathan, they laugh with each other... and me?
I'm just the guy they avoid eye contact with in the hallway.
But I see them.
I see every little thing they try to hide behind their smiles and their attitudes.
And one day they're gonna see me.
They're gonna look at me the way I look at them now.
They're gonna beg. They're gonna crawl.
They're gonna forget every other name except mine.
They'll be mine. Every last one."
<</speech>>
<div class="bio-grid-2col">
<!-- 1. EVA -->
<div class="bio-card">
<img src="img/Eva/Normal.jpg">
<div>
<h3>Eva</h3>
<p>Nathan’s little guard dog. Always glaring at me like I’m the devil because I pick on her precious best friend. She thinks she’s so tough. I can’t wait to see that fire in her eyes turn into desperate, pathetic need. She'll be the one begging me for a break soon enough.</p>
</div>
</div>
<!-- 2. KYLIE -->
<div class="bio-card">
<img src="img/Kylie/Normal.jpg">
<div>
<h3>Kylie</h3>
<p>Nathan’s baby $relation. All giggles and wide-eyed innocence. She looks at him like he’s a hero, but she looks at me like I’m a mistake. I’m gonna enjoy teaching her that the real world isn’t a fairy tale—and I’m the monster she actually wants.</p>
</div>
</div>
<!-- 3. ARIA (New) - Close to Kylie/Isabella -->
<div class="bio-card">
<img src="img/Aria/Normal.jpg">
<div>
<h3>Aria</h3>
<p>Nathan’s perfect little girlfriend — sweet, always listening, helping Alina with her wellness crap. Thinks she’s so caring and loyal. She’s gonna learn real quick that all that nurturing bullshit doesn’t mean anything once I’m in the picture.</p>
</div>
</div>
<!-- 4. KAILEY (New) - Close to Kylie/Isabella -->
<div class="bio-card">
<img src="img/Kailey/Normal.jpg">
<div>
<h3>Kailey</h3>
<p>Nathan’s neighbour — track star, always running, acting all disciplined and independent. Thinks she’s untouchable with that athletic attitude. She’s gonna find out running won’t get her away from me.</p>
</div>
</div>
<!-- 5. LULU (New) - Close to Kylie/Isabella -->
<div class="bio-card">
<img src="img/Lulu/Normal.jpg">
<div>
<h3>Lulu</h3>
<p>Lulu’s Nathan’s study partner — quiet, curvy, always buried in books like she’s too smart for the real world. Thinks she’s safe in her little lit bubble. She’s gonna forget every page and learn who she really needs to please.</p>
</div>
</div>
<!-- 6. ISABELLA -->
<div class="bio-card">
<img src="img/Isabella/Normal.jpg">
<div>
<h3>Isabella</h3>
<p>The fancy Director’s niece. Walks around like her last name is a shield. All smiles and fake politeness, but I know she looks down on me. I’d love to see that high-class pride shatter when she’s crawling across the floor for me.</p>
</div>
</div>
<!-- 7. CHANEL -->
<div class="bio-card">
<img src="img/Chanel/Normal.jpg">
<div>
<h3>Chanel</h3>
<p>The motherly professor who thinks she can save everyone. She looks at the Havenwood kids like they’re broken toys. I’ll show her what 'broken' really looks like. She acts like she’s in charge; I’ll make sure she remembers how to obey.</p>
</div>
</div>
<!-- 8. CAROLINA -->
<div class="bio-card">
<img src="img/Carolina/Normal.jpg">
<div>
<h3>Carolina</h3>
<p>The soft foster girl. Always clinging to people like she’s afraid they’ll vanish. She looks like she’d break if you even raised your voice. I’m gonna enjoy being the reason she falls apart and the only thing she has left to hold onto.</p>
</div>
</div>
<!-- 9. CASEY -->
<div class="bio-card">
<img src="img/Casey/Normal.jpg">
<div>
<h3>Casey</h3>
<p>Sarcastic bitch with a sharp tongue. Thinks her attitude makes her tough. She keeps throwing shade like it’s armor, but armor only works if you can keep someone at a distance. Once I’m close, she’ll be as quiet as a mouse.</p>
</div>
</div>
<!-- 10. ALINA -->
<div class="bio-card">
<img src="img/Alina/Normal.jpg">
<div>
<h3>Alina</h3>
<p>The shrink who tried to 'fix' me at Elsa’s request. All calm and 'understanding.' She thinks she knows my mind? I’ll give her a look at what’s really in there, and I’ll make her crave the darkness she’s so afraid of.</p>
</div>
</div>
<!-- 11. LILY -->
<div class="bio-card">
<img src="img/Lily/Normal.jpg">
<div>
<h3>Lily</h3>
<p>My little $relation. The only one who doesn't treat me like garbage, but she's still too innocent. She defends me because she doesn't know the truth. I don't want to hurt her... I just want her to belong to me. To stop looking for 'the good guy' and realize I'm the only one she needs.</p>
</div>
</div>
<!-- 12. ELSA -->
<div class="bio-card">
<img src="img/Elsa/Normal.jpg">
<div>
<h3>Elsa</h3>
<p>My overbearing older $relation. Always lecturing, always 'helping,' always acting like she knows better. She's the reason I can't breathe in my own house. I'm gonna shut that mouth of hers permanently—one way or another.</p>
</div>
</div>
<!-- 13. LANA (New) - Close to Lily/Elsa -->
<div class="bio-card">
<img src="img/Lana/Normal.jpg">
<div>
<h3>Lana</h3>
<p>Lana’s my cousin — smart-mouth law girl, always acting like she’s better than me. Thinks she can lecture me like the other two. She’s gonna learn who’s really in charge.</p>
</div>
</div>
<!-- 14. JADE -->
<div class="bio-card">
<img src="img/Jade/Normal.jpg">
<div>
<h3>Jade</h3>
<p>Miss Perfect Planner. Always so logical, so organized, so put-together. She thinks every problem has a solution. I can’t wait to fuck the logic right out of her until she can’t even remember her own schedule.</p>
</div>
</div>
<!-- 15. KALI -->
<div class="bio-card">
<img src="img/Kali/Normal.jpg">
<div>
<h3>Kali</h3>
<p>The teasing little flirt. Always reading people, always playing games with 'vibes.' She thinks she’s so intuitive? I’ll give her a vibe she can’t handle. She’ll be reading my needs and nothing else.</p>
</div>
</div>
<!-- 16. GINA -->
<div class="bio-card">
<img src="img/Gina/Normal.jpg">
<div>
<h3>Gina</h3>
<p>Party girl who lives for the next high. She’s always chasing a thrill to escape her life. I’ll give her a high she’ll never come down from—an addiction to me that will make every other guy look like a ghost.</p>
</div>
</div>
<!-- 17. ANYA -->
<div class="bio-card">
<img src="img/Anya/Normal.jpg">
<div>
<h3>Anya</h3>
<p>Caldwell’s good-girl TA. So respectful, so eager to please. She spends her life following that old man's rules. I’m gonna make her realize how much more fun it is to please someone who actually knows what to do with her.</p>
</div>
</div>
<!-- 18. RAE -->
<div class="bio-card">
<img src="img/Rae/Normal.jpg">
<div>
<h3>Rae</h3>
<p>The campus rebel. Always pushing back, always looking for a fight. She thinks she’s anti-authority? I’m the only authority that matters now. I’ll push back until she’s begging for more.</p>
</div>
</div>
<!-- 19. ADRIANA -->
<div class="bio-card">
<img src="img/Adriana/Normal.jpg">
<div>
<h3>Adriana</h3>
<p>The tough security chief. Thinks she runs the security on this campus. I see the way she stands, so assertive and clinical. I’m gonna have her on her back in five minutes, and she won't even remember what 'protocol' means.</p>
</div>
</div>
<!-- 20. KEISHA (New) - Close to Adriana -->
<div class="bio-card">
<img src="img/Keisha/Normal.jpg">
<div>
<h3>Keisha</h3>
<p>Keisha’s the Vice Director — stern, bossy, thinks she runs the campus. Always acting superior. She’s gonna learn who’s really in charge when I bend her over her own desk.</p>
</div>
</div>
<!-- 21. MARIE -->
<div class="bio-card">
<img src="img/Marie/Normal.jpg">
<div>
<h3>Marie</h3>
<p>Cheerful little sunshine. Always smiling at everyone like the world is one big party. I remember when that smile was meant for me. Now? I’m just gonna turn that smile into a moan. She’ll forget Nathan even exists.</p>
</div>
</div>
<!-- 22. BLAKE -->
<div class="bio-card">
<img src="img/Blake/Normal.jpg">
<div>
<h3>Blake</h3>
<p>The untouchable cheerleader queen. Always in the spotlight, always guarded. She thinks her popularity makes her a goddess. I’m gonna touch every inch of her until she realizes she’s just a girl—my girl.</p>
</div>
</div>
<!-- 23. LACY -->
<div class="bio-card">
<img src="img/Lacy/Normal.jpg">
<div>
<h3>Lacy</h3>
<p>The spoiled rich bitch. Thinks her daddy’s money makes her better than me. She treats people like toys. Fine. I’ll treat her like a toy. Let’s see how 'elite' she feels when she’s begging for a fix.</p>
</div>
</div>
<!-- 24. CLAIRE (New) - Close to Lacy -->
<div class="bio-card">
<img src="img/Claire/Normal.jpg">
<div>
<h3>Claire</h3>
<p>Claire used to be my friend — sassy, hot, always the center of attention. Now she acts like she’s too good for me. Thinks she can just walk away. She’s gonna remember who she really belongs to.</p>
</div>
</div>
<!-- 25. MAYA -->
<div class="bio-card">
<img src="img/Maya/Normal.jpg">
<div>
<h3>Maya</h3>
<p>The helpful secretary. Always fixing everyone’s problems with a smile. She’s so trusting, so naive. I’m gonna give her a problem she can’t fix—a dependency on me that she’ll never want to solve.</p>
</div>
</div>
<!-- 26. ADRIA (New) - Close to Maya -->
<div class="bio-card">
<img src="img/Adria/Normal.jpg">
<div>
<h3>Adria</h3>
<p>Adria’s the Student Council princess — poised, in control, always telling everyone what to do. Thinks she’s untouchable. She’s gonna drop that perfect act and crawl for me.</p>
</div>
</div>
<!-- 27. CAPRICE -->
<div class="bio-card">
<img src="img/Caprice/Normal.jpg">
<div>
<h3>Caprice</h3>
<p>The sarcastic librarian. Always hiding behind books like she’s too good for the real world. She’s lonely as hell, even if she won’t admit it. I’m gonna pull her out of the stacks and into my bed.</p>
</div>
</div>
<!-- 28. MELODY (New) - Close to Caprice -->
<div class="bio-card">
<img src="img/Melody/Normal.jpg">
<div>
<h3>Melody</h3>
<p>Melody’s the quiet book club girl — shy, hides behind novels, thinks she’s safe in her little world of stories. All soft and awkward. She’s gonna drop every book and learn who she really answers to.</p>
</div>
</div>
<!-- 29. MADI -->
<div class="bio-card">
<img src="img/Madi/Normal.jpg">
<div>
<h3>Madi</h3>
<p>The nosy reporter. Always digging for the 'truth.' She’s so tenacious, so open-minded. I’ll give her a story she’ll be too addicted to ever print. She’ll be reporting only to me.</p>
</div>
</div>
<!-- 30. SAVANNAH (New) - Close to Madi -->
<div class="bio-card">
<img src="img/Savannah/Normal.jpg">
<div>
<h3>Savannah</h3>
<p>Savannah’s the sunshine girl — always smiling, always hugging, acting like the world’s her playground. Thinks she’s untouchable with that bubbly energy. She’s gonna lose that smile and learn what she really craves.</p>
</div>
</div>
</div>
<<speech "Josh">>
"They all think they’re better than me. They’re wrong. And soon they’ll know it. Every last one of them is gonna learn the same lesson: I’m not invisible anymore. I’m the only thing they’ll see."
<</speech>>
<div style="text-align: center; margin-top: 50px; padding-bottom: 50px;">
<span class="custom-link">[[Time to make them see.|Hub]]</span>
</div><h1 style="text-align:center; color: #ffff00; text-shadow: 0 0 10px #ffff00;">THE ANCHOR'S VOW</h1>
<<speech "Jasper">>
"These are the girls who’ve come into my life.
Some from Havenwood, some from classes, some just… found their way to me.
They’ve all been hurt, abandoned, or left searching for something solid.
I see that. I feel it.
And I want to give them what they need: a place that doesn’t disappear.
A family that stays.
Me."
<</speech>>
<div class="bio-grid-2col">
<!-- 1. EVA -->
<div class="bio-card">
<img src="img/Eva/Normal.jpg">
<div>
<h3>Eva</h3>
<p>Eva is Nathan’s best friend. Fierce, loyal, always protecting the people she loves. She carries so much for others, always standing in the gap. I want her to know she doesn’t have to be the shield for once—she can lean on me too.</p>
</div>
</div>
<!-- 2. KYLIE -->
<div class="bio-card">
<img src="img/Kylie/Normal.jpg">
<div>
<h3>Kylie</h3>
<p>Kylie is Nathan’s little $relation. Sweet, playful, full of light. She looks up to her $malerel like he’s everything, but even she has moments where she feels lost. I want her to feel safe in the same way she makes everyone else feel happy.</p>
</div>
</div>
<!-- 3. ARIA (New) - Close to Kylie/Isabella -->
<div class="bio-card">
<img src="img/Aria/Normal.jpg">
<div>
<h3>Aria</h3>
<p>Aria is Nathan’s girlfriend and Alina’s trusted assistant in wellness — always listening with such gentle care. She’s nurturing, but I see the quiet insecurity underneath, the fear of not being enough. I want to be the one who gives her that forever — no more doubts, just belonging.</p>
</div>
</div>
<!-- 4. KAILEY (New) - Close to Kylie/Isabella -->
<div class="bio-card">
<img src="img/Kailey/Normal.jpg">
<div>
<h3>Kailey</h3>
<p>Kailey is Nathan’s cheerful neighbour — a track star pushing herself hard, but I see how much she carries alone. She needs someone steady who won’t slow her down but will always be there when she finishes the race. I want to be that person — her anchor, her home base.</p>
</div>
</div>
<!-- 5. LULU (New) - Close to Kylie/Isabella -->
<div class="bio-card">
<img src="img/Lulu/Normal.jpg">
<div>
<h3>Lulu</h3>
<p>Lulu is Nathan’s study partner — quiet, thoughtful, and diligent. She’s warm once she trusts you, but she hides behind her notes sometimes, self-conscious about her presence. She deserves someone who sees her completely and makes her feel safe to be herself.</p>
</div>
</div>
<!-- 6. ISABELLA -->
<div class="bio-card">
<img src="img/Isabella/Normal.jpg">
<div>
<h3>Isabella</h3>
<p>Isabella is a childhood friend of Nathan’s and the Director’s niece. Warm, kind, always thoughtful. She’s been through a lot quietly, balancing family expectations. I want her to feel like she finally belongs somewhere real and permanent.</p>
</div>
</div>
<!-- 7. CHANEL -->
<div class="bio-card">
<img src="img/Chanel/Normal.jpg">
<div>
<h3>Chanel</h3>
<p>Chanel is the sociology professor and Havenwood caretaker. She’s compassionate, patient, and gives everything to the kids. She’s carried the weight of this house for so long. I want to be the one who carries some of it for her.</p>
</div>
</div>
<!-- 8. CAROLINA -->
<div class="bio-card">
<img src="img/Carolina/Normal.jpg">
<div>
<h3>Carolina</h3>
<p>Carolina is my foster sister. Gentle, creative, and always holding on tight to the people she trusts. She’s known too much loss in the system. I’ll make sure she never has to worry about losing her place with me.</p>
</div>
</div>
<!-- 9. CASEY -->
<div class="bio-card">
<img src="img/Casey/Normal.jpg">
<div>
<h3>Casey</h3>
<p>Casey is a former Havenwood kid who still comes back. Sarcastic and guarded, but she cares more than she lets on. I want her to feel like she can stop hiding her heart behind that sharp tongue and just find a home here.</p>
</div>
</div>
<!-- 10. ALINA -->
<div class="bio-card">
<img src="img/Alina/Normal.jpg">
<div>
<h3>Alina</h3>
<p>Alina is the school psychologist. Empathetic and patient, always trying to understand the mess in everyone else's head. She helps everyone else find their way back. I want to be the one who helps her when she gets lost in the dark.</p>
</div>
</div>
<!-- 11. LILY -->
<div class="bio-card">
<img src="img/Lily/Normal.jpg">
<div>
<h3>Lily</h3>
<p>Lily is Josh’s younger $relation. Sweet, trusting, and sees the best in people even when they don't deserve it. She deserves to feel protected without having to fight for her $malerel's attention or approval.</p>
</div>
</div>
<!-- 12. ELSA -->
<div class="bio-card">
<img src="img/Elsa/Normal.jpg">
<div>
<h3>Elsa</h3>
<p>Elsa is Josh’s older $relation. Responsible and compassionate, she spends all her time trying to hold her family together. She carries a lot of guilt and stress. I want her to be able to put it down and just exist.</p>
</div>
</div>
<!-- 13. LANA (New) - Close to Lily/Elsa -->
<div class="bio-card">
<img src="img/Lana/Normal.jpg">
<div>
<h3>Lana</h3>
<p>Lana is Josh’s sharp-tongued cousin and law major — smart, driven, and fiercely loyal to family. She deserves to know she doesn’t have to be the responsible one all the time… that she can let someone else carry the weight for once.</p>
</div>
</div>
<!-- 14. JADE -->
<div class="bio-card">
<img src="img/Jade/Normal.jpg">
<div>
<h3>Jade</h3>
<p>Jade is the practical planner of Elsa’s circle. Organized and responsible, she's always the voice of reason. She needs someone who’ll take care of the plans for her, so she can finally just relax and trust the process.</p>
</div>
</div>
<!-- 15. KALI -->
<div class="bio-card">
<img src="img/Kali/Normal.jpg">
<div>
<h3>Kali</h3>
<p>Kali is the group’s teasing empath. Intuitive and playful, she reads moods like a book. She feels everything deeply, but that can be draining. I want her to feel like she has a safe, quiet harbor with me where she doesn't have to sense everything.</p>
</div>
</div>
<!-- 16. GINA -->
<div class="bio-card">
<img src="img/Gina/Normal.jpg">
<div>
<h3>Gina</h3>
<p>Gina is the high-energy party girl. Outgoing, bold, always chasing the next fun thing to escape her stress. I want to give her a different kind of peace—a real calm that she doesn't have to run from.</p>
</div>
</div>
<!-- 17. ANYA -->
<div class="bio-card">
<img src="img/Anya/Normal.jpg">
<div>
<h3>Anya</h3>
<p>Anya is a diligent and respectful student. She trusts authority too easily because she wants to succeed. I want her to trust me instead—not because of a title, but because I’ll actually protect her future.</p>
</div>
</div>
<!-- 18. RAE -->
<div class="bio-card">
<img src="img/Rae/Normal.jpg">
<div>
<h3>Rae</h3>
<p>Rae is the rebel, always pushing back against the world. But I see the insecurity underneath the sarcasm. She craves structure and a solid place to land. I can give her the stability she's been fighting against.</p>
</div>
</div>
<!-- 19. ADRIANA -->
<div class="bio-card">
<img src="img/Adriana/Normal.jpg">
<div>
<h3>Adriana</h3>
<p>Adriana is a campus security guard. Strong and assertive, she keeps things in order for everyone else. She’s spent so long being the one in charge of safety that she’s forgotten how it feels to be protected herself.</p>
</div>
</div>
<!-- 20. KEISHA (New) - Close to Adriana -->
<div class="bio-card">
<img src="img/Keisha/Normal.jpg">
<div>
<h3>Keisha</h3>
<p>Keisha is the young Vice Director — stern but fair, keeping this campus running with quiet strength. She deserves to know she doesn’t have to carry it all alone… that she can lean on someone who’ll protect her the way she protects the system.</p>
</div>
</div>
<!-- 21. MARIE -->
<div class="bio-card">
<img src="img/Marie/Normal.jpg">
<div>
<h3>Marie</h3>
<p>Marie is the cheerful campus connector. She believes everyone can get along and works tirelessly to make it happen. She’s the heart of her group, and I want to make sure that heart stays safe and appreciated.</p>
</div>
</div>
<!-- 22. BLAKE -->
<div class="bio-card">
<img src="img/Blake/Normal.jpg">
<div>
<h3>Blake</h3>
<p>Blake is the aloof cheerleader, perfect on the outside but secretly lonely. She's guarded her image for years. I want her to feel a real connection that doesn't care about the spotlight, something she can finally trust.</p>
</div>
</div>
<!-- 23. LACY -->
<div class="bio-card">
<img src="img/Lacy/Normal.jpg">
<div>
<h3>Lacy</h3>
<p>Lacy is the mayor’s daughter. Calculating and entitled, yet deeply insecure about real power. She needs someone real who won't be swayed by her status, someone who can be her true anchor when the politics fade.</p>
</div>
</div>
<!-- 24. CLAIRE (New) - Close to Lacy -->
<div class="bio-card">
<img src="img/Claire/Normal.jpg">
<div>
<h3>Claire</h3>
<p>Claire is the sassy school star — quick-witted and full of charisma. Behind the banter, she’s hiding hurt and looking for real connection. She deserves someone who won’t make her perform. I want to be that person — steady and safe.</p>
</div>
</div>
<!-- 25. MAYA -->
<div class="bio-card">
<img src="img/Maya/Normal.jpg">
<div>
<h3>Maya</h3>
<p>Maya is the university secretary. Helpful, cheerful, always fixing things for everyone. She assumes the best in everyone, which makes her vulnerable. She deserves someone who’ll fix things for her for a change.</p>
</div>
</div>
<!-- 26. ADRIA (New) - Close to Maya -->
<div class="bio-card">
<img src="img/Adria/Normal.jpg">
<div>
<h3>Adria</h3>
<p>Adria is the charismatic Student Council President — always in command. I can see the pressure she carries to be perfect for the students. She deserves to feel safe enough to let go sometimes… to know there’s someone else taking care of things.</p>
</div>
</div>
<!-- 27. CAPRICE -->
<div class="bio-card">
<img src="img/Caprice/Normal.jpg">
<div>
<h3>Caprice</h3>
<p>Caprice is the solitary librarian. Sarcastic, guarded, and prefers books to the mess of people. She’s lonely, though she'd never admit it. I want her to feel understood without having to put up a fight.</p>
</div>
</div>
<!-- 28. MELODY (New) - Close to Caprice -->
<div class="bio-card">
<img src="img/Melody/Normal.jpg">
<div>
<h3>Melody</h3>
<p>Melody is the shy book club president I met after transferring. She’s soft-spoken and thoughtful, always hiding behind stories. She deserves a place where she never has to feel awkward. I want to be her safe harbor, the one she always returns to.</p>
</div>
</div>
<!-- 29. MADI -->
<div class="bio-card">
<img src="img/Madi/Normal.jpg">
<div>
<h3>Madi</h3>
<p>Madi is a curious journalism reporter, always chasing stories and believing in people. She’s tenacious and friendly, but a bit naive. I want her to know she can trust me with the truth, and that I'll keep her safe while she finds it.</p>
</div>
</div>
<!-- 30. SAVANNAH (New) - Close to Madi -->
<div class="bio-card">
<img src="img/Savannah/Normal.jpg">
<div>
<h3>Savannah</h3>
<p>Savannah is the ultimate sunshine friend — always smiling. She gives so much of herself to others that she forgets to rest. She deserves a place where she can stop carrying everyone else. I want to be her safe space — the one who protects her light.</p>
</div>
</div>
</div>
<<speech "Jasper">>
"They’ve all been hurt, left, or just… searching. I see that. I feel it. And I’ll give them what they need: A place that doesn’t disappear. A family that stays. Me."
<</speech>>
<div style="text-align: center; margin-top: 50px; padding-bottom: 50px;">
<span class="custom-link">[[I will be their anchor.|Hub]]</span>
</div><h1 style="text-align:center; color: #a0a0a0; text-shadow: 0 0 10px #ffffff;">SYSTEMATIC CALIBRATION</h1>
<<speech "Caldwell">>
"Thirty primary subjects.
Each one a specimen of human frailty, ripe for calibration.
I have observed them all—through lectures, detentions, security feeds, and private assessments.
Their wills are structures built on sand: deference, rebellion, loneliness, pride.
All of them will yield.
All of them will become perfect instruments.
Here is my updated assessment."
<</speech>>
<div class="bio-grid-2col">
<!-- 1. EVA -->
<div class="bio-card">
<img src="img/Eva/Normal.jpg">
<div>
<h3>Eva</h3>
<p>Eva — Nathan's longtime protector. High emotional investment in peers makes her vulnerable to authority figures who project stability. Potential for rapid imprint once her defensive fire is extinguished. Calibration: High priority.</p>
</div>
</div>
<!-- 2. KYLIE -->
<div class="bio-card">
<img src="img/Kylie/Normal.jpg">
<div>
<h3>Kylie</h3>
<p>Kylie — Nathan's younger $relation. Youthful, affectionate, and impressionable. Sibling reliance provides a clear path for redirection. Younger subjects imprint cleanly; expect total compliance with minimal calibration sessions.</p>
</div>
</div>
<!-- 3. ARIA (New) -->
<div class="bio-card">
<img src="img/Aria/Normal.jpg">
<div>
<h3>Aria</h3>
<p>Aria, Nathan’s sweet little girlfriend. So affectionate, so eager to listen and soothe everyone’s pain. That gentle, nurturing heart of hers is practically begging to be twisted. I can already picture her wide hazel eyes glazing over as I slowly peel away her loyalty, turning her into my perfect, trembling plaything. She’ll break beautifully.</p>
</div>
</div>
<!-- 4. KAILEY (New) -->
<div class="bio-card">
<img src="img/Kailey/Normal.jpg">
<div>
<h3>Kailey</h3>
<p>Kailey, the disciplined little runner. All that toned energy, all that fierce independence. She thinks she’s unbreakable. I’ll enjoy watching her strong legs tremble as I strip away every ounce of control, turning her into a panting, obedient toy who forgets how to run unless I allow it. Delicious.</p>
</div>
</div>
<!-- 5. LULU (New) -->
<div class="bio-card">
<img src="img/Lulu/Normal.jpg">
<div>
<h3>Lulu</h3>
<p>Lulu, Nathan’s quiet study partner. So diligent, so thoughtful, so adorably self-conscious about her soft curves. She thinks deep conversations make her safe. I’ll take that clever little mind and fill it with nothing but my commands, until she’s nothing more than a warm, willing doll on her knees. She’ll thank me for it.</p>
</div>
</div>
<!-- 6. ISABELLA -->
<div class="bio-card">
<img src="img/Isabella/Normal.jpg">
<div>
<h3>Isabella</h3>
<p>Isabella — Childhood friend of Nathan and Director Kane's niece. Privilege provides surface confidence, but an underlying need for approval offers significant leverage. Family ties to the Directorate will accelerate her conditioning.</p>
</div>
</div>
<!-- 7. CHANEL -->
<div class="bio-card">
<img src="img/Chanel/Normal.jpg">
<div>
<h3>Chanel</h3>
<p>Chanel — Sociology professor and Havenwood caretaker. Nurturing instincts are highly exploitable; once redirected toward obedience, she will serve as a maternal proxy for the entire network.</p>
</div>
</div>
<!-- 8. CAROLINA -->
<div class="bio-card">
<img src="img/Carolina/Normal.jpg">
<div>
<h3>Carolina</h3>
<p>Carolina — Foster sister at Havenwood. History of instability makes her highly susceptible to a perceived permanent authority. Her need for stable bonds is easily satisfied through total submission to the system.</p>
</div>
</div>
<!-- 9. CASEY -->
<div class="bio-card">
<img src="img/Casey/Normal.jpg">
<div>
<h3>Casey</h3>
<p>Casey — Former Havenwood resident. Sarcastic defenses are merely a shell masking deep-seated vulnerability. Consistent pressure will result in a complete collapse of resistance. Potential for total, quiet submission.</p>
</div>
</div>
<!-- 10. ALINA -->
<div class="bio-card">
<img src="img/Alina/Normal.jpg">
<div>
<h3>Alina</h3>
<p>Alina — School psychologist. Professional understanding of the mind is a double-edged sword; her own need for meaningful connection makes her pliable. A mind trained to heal is easily trained to obey.</p>
</div>
</div>
<!-- 11. LILY -->
<div class="bio-card">
<img src="img/Lily/Normal.jpg">
<div>
<h3>Lily</h3>
<p>Lily — Josh's younger $relation. Innocent, trusting, and family-loyal. Naivety makes her an ideal subject for imprinting. Expect rapid, total compliance through sensory-focused calibration.</p>
</div>
</div>
<!-- 12. ELSA -->
<div class="bio-card">
<img src="img/Elsa/Normal.jpg">
<div>
<h3>Elsa</h3>
<p>Elsa — Josh's older $relation. Responsible and guilt-ridden. Carries excessive emotional weight; by assuming control over her family's fate, I relieve her of the burden. She will surrender fully to the relief of having no choices left.</p>
</div>
</div>
<!-- 13. LANA (New) -->
<div class="bio-card">
<img src="img/Lana/Normal.jpg">
<div>
<h3>Lana</h3>
<p>Lana, Josh’s sharp-tongued cousin. Intelligent, argumentative, always acting superior. She thinks her wit keeps her safe. I’ll enjoy silencing that clever mouth, watching her piercing eyes go vacant as she learns to kneel instead of debate. A proud mind waiting to be emptied and filled with my will.</p>
</div>
</div>
<!-- 14. JADE -->
<div class="bio-card">
<img src="img/Jade/Normal.jpg">
<div>
<h3>Jade</h3>
<p>Jade — Diligent planner. Structured mind responds well to clear, rigid hierarchy. Once her analytical functions are redirected, she will maintain order within the subject pool with mechanical precision.</p>
</div>
</div>
<!-- 15. KALI -->
<div class="bio-card">
<img src="img/Kali/Normal.jpg">
<div>
<h3>Kali</h3>
<p>Kali — Teasing empath. High emotional sensitivity makes her vulnerable to hypnotic suggestion. Imprinting her will be swift; she will sense only what I allow her to feel.</p>
</div>
</div>
<!-- 16. GINA -->
<div class="bio-card">
<img src="img/Gina/Normal.jpg">
<div>
<h3>Gina</h3>
<p>Gina — High-energy party girl. Impulsivity and thrill-seeking can be efficiently redirected into high-intensity service. Calibration will focus on transforming chaos into compliant activity.</p>
</div>
</div>
<!-- 17. ANYA -->
<div class="bio-card">
<img src="img/Anya/Normal.jpg">
<div>
<h3>Anya</h3>
<p>Anya — My own graduate teaching assistant. Ambitious and respectful of authority. Already primed for deep conditioning through our professional interactions. The transition to absolute asset will be seamless.</p>
</div>
</div>
<!-- 18. RAE -->
<div class="bio-card">
<img src="img/Rae/Normal.jpg">
<div>
<h3>Rae</h3>
<p>Rae — Rebellious sophomore. Her outward defiance is a reaction to inner insecurity. Rebellion is merely a lack of proper structure; total recalibration will provide the vacuum of will she secretly craves.</p>
</div>
</div>
<!-- 19. ADRIANA -->
<div class="bio-card">
<img src="img/Adriana/Normal.jpg">
<div>
<h3>Adriana</h3>
<p>Adriana — Campus security guard under my oversight. Assertive and practical. Respects the chain of command. Thrives under clear direction; will comply fully once my authority becomes absolute.</p>
</div>
</div>
<!-- 20. KEISHA (New) -->
<div class="bio-card">
<img src="img/Keisha/Normal.jpg">
<div>
<h3>Keisha</h3>
<p>Keisha, the stern young Vice Director. So disciplined, so authoritative, so convinced she holds all the power. I’ll take exquisite pleasure in dismantling that control, watching her steady gaze turn glassy and pleading as she kneels for me. A proud executive turned into my perfect, quivering puppet.</p>
</div>
</div>
<!-- 21. MARIE -->
<div class="bio-card">
<img src="img/Marie/Normal.jpg">
<div>
<h3>Marie</h3>
<p>Marie — Cheerful connector. Her belief in social harmony is a tactical weakness. Redirect that social energy toward a singular focus on the Master, and she becomes an ideal recruitment node.</p>
</div>
</div>
<!-- 22. BLAKE -->
<div class="bio-card">
<img src="img/Blake/Normal.jpg">
<div>
<h3>Blake</h3>
<p>Blake — Top cheerleader. Loneliness beneath the spotlight provides the necessary entry point. Her perfectionism will be recalibrated into a flawless, elegant submission.</p>
</div>
</div>
<!-- 23. LACY -->
<div class="bio-card">
<img src="img/Lacy/Normal.jpg">
<div>
<h3>Lacy</h3>
<p>Lacy — Mayor's daughter. Entitled and manipulative. Strip away the social privilege and her fragility is exposed. She will become a pliable and highly cooperative asset once her status is removed.</p>
</div>
</div>
<!-- 24. CLAIRE (New) -->
<div class="bio-card">
<img src="img/Claire/Normal.jpg">
<div>
<h3>Claire</h3>
<p>Claire, the sassy campus queen. All wit and confidence, always performing for the crowd. She thinks she’s untouchable. I’ll enjoy peeling away every layer of that armor, watching her sharp tongue go silent as she learns to beg instead of bite. A proud little doll, ready to be humbled.</p>
</div>
</div>
<!-- 25. MAYA -->
<div class="bio-card">
<img src="img/Maya/Normal.jpg">
<div>
<h3>Maya</h3>
<p>Maya — University secretary. Deference to authority and assumption of good intentions make her an ideal subject for rapid, unquestioning conditioning. Specimen is highly receptive.</p>
</div>
</div>
<!-- 26. ADRIA (New) -->
<div class="bio-card">
<img src="img/Adria/Normal.jpg">
<div>
<h3>Adria</h3>
<p>Adria, the poised Student Council President. Always in command, always perfect, always carrying the weight of expectation. She thinks she’s unbreakable. I’ll savor the moment her composure cracks, when she realizes she exists only to obey. A beautiful leader reduced to my eager, empty doll.</p>
</div>
</div>
<!-- 27. CAPRICE -->
<div class="bio-card">
<img src="img/Caprice/Normal.jpg">
<div>
<h3>Caprice</h3>
<p>Caprice — Solitary librarian. Loneliness is the key to her mind. By offering perceived understanding, I will bypass her sarcasm and imprint her will for total silence and service.</p>
</div>
</div>
<!-- 28. MELODY (New) -->
<div class="bio-card">
<img src="img/Melody/Normal.jpg">
<div>
<h3>Melody</h3>
<p>Melody, the shy little bookworm who runs the club. Hiding behind her stories, too timid to face the real world. So delicate, so eager to please once someone gets close. I want to watch her soft blue eyes go blank as I replace every page in her mind with my voice. A fragile doll just waiting for me to pull the strings.</p>
</div>
</div>
<!-- 29. MADI -->
<div class="bio-card">
<img src="img/Madi/Normal.jpg">
<div>
<h3>Madi</h3>
<p>Madi — Curious journalism club reporter. Naivety and a belief in 'truth' make her mind easy to rewrite. Her tenacity will be redirected into a singular focus on my directives.</p>
</div>
</div>
<!-- 30. SAVANNAH (New) -->
<div class="bio-card">
<img src="img/Savannah/Normal.jpg">
<div>
<h3>Savannah</h3>
<p>Savannah, the radiant little sunshine girl. Always smiling, always giving, always pretending the world can’t touch her. That boundless warmth is just fuel for me. I want to watch her bright eyes dim, her body tremble, as I turn all that carefree joy into desperate, whimpering obedience. She’ll be my favorite broken toy.</p>
</div>
</div>
</div>
<<speech "Caldwell">>
"The assessment phase is complete. Every subject is now categorised. The calibration of Eldridge Hollow proceeds according to the established schedule."
<</speech>>
<div style="text-align: center; margin-top: 50px; padding-bottom: 50px;">
<span class="custom-link">[[Initiate Sequence.|Hub]]</span>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The door to Dr. Caldwell's office flies open with a defiant bang, and Casey leans against the doorframe, her arms crossed over her chest. Her long dark hair is a stark contrast to the crimson of her red varsity jacket, and her piercing eyes scan the room with a look of utter disdain.
<img src="img/Casey/Normal.jpg">
<<speech "Casey">> "So, you're Caldwell. Chanel sent me. Said I had to do this 'faculty wellness' bullshit or I couldn't help out with the weekend intake. Let's just get this over with so I can get back to doing something that actually matters." <</speech>>
Her voice is sharp, laced with a defensive sarcasm that she uses like armor. Caldwell looks up from his desk, his expression unreadable. He sees past the aggressive posturing to the vulnerable foster child underneath. A perfect, fractured specimen.
<<speech "Caldwell">> "Ms. Casey. Your... enthusiasm is noted. The 'Faculty and Ally Resilience' program is indeed mandatory for all individuals who interact with our vulnerable youth. Please, have a seat. The module is brief." <</speech>>
He gestures to the armchair. Casey rolls her eyes and slumps into it, pulling out her phone and beginning to scroll with an audible sigh.
<<speech "Casey">> "Yeah, yeah, 'resilience'. I'm plenty resilient. Let's just do this." <</speech>>
The lights dim. The video begins. It starts with a gratingly cheerful narrator talking about "finding your inner calm," which earns an audible snort from Casey. But within a few minutes, the presentation shifts. The narrator's voice drops into a low, hypnotic thrum that seems to bypass her ears and vibrate directly behind her eyes. The cheerful graphics dissolve into sharp, geometric patterns that flash and pulse in time with a low, subliminal hum.
Casey's thumb freezes on her phone screen. A strange, heavy feeling washes over her. The sharp, cynical thoughts that usually race through her mind begin to slow, then dissolve like sugar in water. A profound, unnerving calm settles over her. It feels... good. Too good. To just stop fighting. To stop thinking. Her eyelids feel heavy, and she sinks deeper into the chair, her phone slipping from her grasp and clattering unnoticed onto the floor. Her head lolls to the side, her piercing eyes now wide and glassy, staring into the swirling patterns on the screen.
Thirty minutes later, the screen fades to black. The lights click on. Caldwell stands up, his movements silent. He walks around his desk and stands before her. She sits motionless, her head tilted, a single, perfect tear tracing a path down her cheek, a remnant of a defense she no longer needs.
<<speech "Caldwell">> "Casey. Look at me." <</speech>>
Her head slowly turns, her eyes locking onto his. The sharp, defiant fire is gone, replaced by a vast, placid emptiness.
<<speech "Caldwell">> "Stand." <</speech>>
She rises to her feet in a single, fluid motion.
<<speech "Caldwell">> "You will now demonstrate your physical compliance. You will remove your clothing." <</speech>>
Her hands move to the zipper of her varsity jacket. Her movements are slow, deliberate, and utterly devoid of their usual defiant energy. She removes each layer of clothing—jacket, t-shirt, low-rise jeans, bra, panties—and folds them neatly, placing the stack on the armchair. She stands naked before him, her sharp features and edgy style now stripped away, revealing a lean, vulnerable form. She shows no sign of shame or cold, simply waiting for the next command.
<img src="img/Casey/Corr3.jpg">
<<speech "Caldwell">> "The couch. On your back. Legs open." <</speech>>
She walks into the adjoining screening room and lies nude on the beige couch, black choker still at her throat. One hand holds her raised thigh while the other rests on her breast. Caldwell kneels between her legs, grips her hips, and presses his face between them.
The mask has dropped. There is nothing detached in the way he watches her body shift beneath his mouth; he enjoys the sight of the sharp-tongued former foster reduced to an open, obedient thing on his couch.
<<speech "Caldwell">> "Look at you. All that barking, and this is what was underneath—garbage waiting for someone to give it a use." <</speech>>
Her head tips back, mouth open and eyes half-closed while his tongue works over her and her hips shift against the cushions.
<video src="img/Casey/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He orders her to dress only as far as the black tank top, then pulls her upright beside the couch. Caldwell remains in a gray shirt and dark trousers, pants open. Casey reaches inside with both hands and strokes his exposed cock while their bodies press together.
<<speech "Caldwell">> "Kiss me while you work, you empty little thing. Let me see how quickly that filthy mouth forgets every insult it knows." <</speech>>
She obeys, one hand moving steadily along his shaft while the other presses to his chest. He lifts his shirt as they kiss deeply, her eyes closed, her mouth soft and pliant beneath his.
<video src="img/Casey/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When he is satisfied, he pushes her back and tucks himself away.
<<speech "Caldwell">> "Release. Finish dressing." <</speech>>
She calmly retrieves the rest of her clothes and dresses with the same detached efficiency. When she is fully clothed, she stands beside the couch, waiting.
<<speech "Caldwell">> "The screening is complete, Ms. Casey. You are... surprisingly receptive to the program. You will leave now. You will remember only that you participated in a helpful wellness seminar and feel a profound sense of relaxation. You will not remember the details of this room or our interaction." <</speech>>
<<speech "Casey">> "Whatever. Can I go now?" <</speech>>
Her voice is sharp, her usual sarcasm back in place, the memory wiped clean. She gives him a final, dismissive look and walks out of his office, the defensive soul once again cloaked in the empty shell of compliance, leaving Caldwell alone with the quiet satisfaction of a successful experiment.
<<elseif _s is 2>>
Casey finds herself back outside Caldwell's office. She doesn't remember why she's there, only that Chanel insisted it was important for her to "follow through" with the wellness program. A part of her, the part that still remembers the strange, pleasant calm from the first session, is curious. The other, louder part is just annoyed.
<img src="img/Casey/Normal.jpg">
She doesn't bother knocking. She just walks in, her hands shoved into the pockets of her low-rise jeans.
<<speech "Casey">> "Alright, Caldwell. Round two. Let's get this over with. I've got better things to do than stare at a wall for an hour." <</speech>>
Caldwell looks up from his desk, his expression as unreadable as ever.
<<speech "Caldwell">> "Ms. Casey. Your punctuality is appreciated. This session is a reinforcement module, designed to solidify the coping mechanisms from our first meeting. Please, be seated." <</speech>>
She slumps into the armchair, her usual defiant posture radiating impatience. The lights dim. The video begins.
This time, the hypnotic assault begins immediately. The screen fills with aggressive, strobing geometric patterns. The subliminal hum is a deep, resonant thrum that seems to vibrate through her teeth. A cold recorded whisper repeats beneath it, wearing the same commands into her for nearly an hour. Her sarcastic retorts die in her throat one by one, replaced by an even deeper, more profound emptiness.
When the screen finally goes dark, Caldwell stands over her.
<<speech "Caldwell">> "Casey. Stand." <</speech>>
She rises, her movements fluid and silent.
<<speech "Caldwell">> "Remove the jacket and jeans. Keep the black top on. Kneel." <</speech>>
She obeyed with mindless efficiency, folding the discarded clothes neatly before sinking to the carpet. The black tank top and choker remained; her back was straight and her hands rested limply on her thighs.
Caldwell walks to his desk and unzips his trousers, his cock already hard in anticipation. He approaches her, stopping directly in front of her kneeling form.
<<speech "Caldwell">> "You will now perform your oral compliance task. You will service me with your mouth until I achieve completion. You will not swallow. You will keep your eyes open and look at me. This is a test of your focus and acceptance. Begin." <</speech>>
<<speech "Casey">> "Yes, Dr. Caldwell. I will comply." <</speech>>
Her voice is a flat, toneless whisper. Still wearing the black tank top and choker, she kneels in front of him in the dim screening room, holds the base of his cock with one hand, and takes him into her mouth. Her head moves steadily while she looks up; saliva glistens on her lips and chin. Caldwell rests a hand on the back of her head and sneers down at the girl who once used that mouth as a weapon.
<video src="img/Casey/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There it is. Your one useful skill. All that sarcasm, and this worthless mouth was always better suited to a cock." <</speech>>
He strips away the remaining clothes and puts her on her knees in front of the beige couch.
<img src="img/Casey/Corr3.jpg">
Casey tilts her head back, mouth wide and tongue extended. Caldwell strokes himself over her face until thick ropes of cum land across her tongue, lips, cheeks, and chin, dripping down her neck and bare breasts.
She holds the position until he presses himself back to her mouth. Then she leans forward, takes the head between her lips, and sucks him clean while gripping his thigh, saliva and cum mixing around her mouth.
<video src="img/Casey/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Pathetic. You used to think that glare made you dangerous. Now look at you—naked on my floor, cleaning up the proof that you're nothing." <</speech>>
He tucks himself back into his trousers, leaving her face coated.
<<speech "Caldwell">> "Cease. Get dressed." <</speech>>
She releases him and sits back on her heels. She rises and calmly retrieves her clothes, dressing herself with the same detached efficiency, not bothering to wipe the cum from her face. When she is fully clothed, she stands at attention, her expression once again that of a sharp, defensive young woman, the drying cum on her face the only evidence of her compliance.
<<speech "Caldwell">> "Your reinforcement is complete. The program is proving highly effective for you. You will leave now. You will remember only that you had another productive wellness session. You will feel an even deeper sense of calm and control. You will not remember the details of this room or our interaction." <</speech>>
<<speech "Casey">> "Great. Can I go now?" <</speech>>
Her voice is sharp, her usual sarcasm back in place, the memory wiped clean. She gives him a final, dismissive look and walks out of his office, the defensive soul once again cloaked in the empty shell of compliance, leaving Caldwell alone with the quiet satisfaction of a successful experiment.
<<elseif _s is 3>>
The hypnotic triggers embedded in Casey's mind kept festering. The "wellness program" was no longer merely a chore; it had become a craving. She found herself drawn to Caldwell's private screening suite, a deep, unsettling need overriding her usual cynical defiance. She didn't knock normally. Her knuckles tapped the simple rhythm he had implanted.
<img src="img/Casey/Corr1.jpg">
The door swings open. Caldwell is not at his desk. He's sitting on the beige sofa in the corner of the room, a glass of amber liquid in his hand. He's loosened his tie, and there's a predatory, sleazy smirk on his face that wasn't there before. He looks less like a clinician and more like a man about to enjoy a long-awaited meal.
<<speech "Casey">> "Dr. Caldwell. I am here for my final calibration." <</speech>>
Her voice is a flat monotone, but her body is tense, a coiled spring of conflicting programming.
<<speech "Caldwell">> "Well, well. Look what the cat dragged in. Come on in, Casey. Don't be shy." <</speech>>
His voice is a low, mocking purr. He takes a sip of his drink, his eyes raking over her body.
<<speech "Caldwell">> "We're done with videos and chairs. The final stage is about... breaking in the new asset. Making sure it's properly house-trained. Strip. Let's see what all that fighting was hiding." <</speech>>
The command is crude, devoid of his usual clinical detachment. It's the voice of a man enjoying his power. She moves to the center of the room and begins to undress, her movements still fluid but now tinged with a subtle, programmed reluctance. Each piece of her armor is folded and placed on the floor. She stands naked before him, her lean body exposed to his hungry gaze.
<img src="img/Casey/Corr3.jpg">
<<speech "Caldwell">> "On the sofa. On your hands and knees. Ass towards me. Come on, you know the position." <</speech>>
He pats the cushion beside him. She walks to the sofa and climbs on, assuming the position, her head bowed, her sharp features hidden by a curtain of dark hair. He sets his drink down on the floor and stands up, walking around her like a shark circling its prey. He runs a hand possessively over her ass, his touch rough, no longer clinical.
<<speech "Caldwell">> "That's a good girl. All that attitude, all that fire... just waiting to be put out. Let's see if we can't find a spark, shall we?" <</speech>>
He unzips his trousers and frees his hard cock. He doesn't enter her immediately. Instead, he kneels behind her and spreads her cheeks, his breath hot on her skin. He leans in and bites her ass, hard enough to leave a mark. She flinches, a tiny, involuntary gasp escaping her lips, but she doesn't move away.
<<speech "Caldwell">> "Oh, there it is. A little life. Good." <</speech>>
He chuckles, a low, depraved sound. He then lines himself up and slams into her in one brutal, unceremonious thrust. He grips her hips hard enough to bruise and begins to fuck her with a rough, punishing rhythm. The sound of skin slapping against skin fills the room, accompanied by his grunts of effort and her soft, pained whimpers.
<<speech "Caldwell">> "That's it. Take it. This is all you're good for now, you little shit. Not your smart mouth, not your 'defenses'. Just this. A tight, warm hole for me to use." <</speech>>
<video src="img/Casey/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He revels in the psychological destruction, in the act of fucking the defiance out of her. A fist in her hair forces her head back and makes her spine arch.
<<speech "Caldwell">> "Look at you. So fucking broken. And you love it, don't you? Admit it." <</speech>>
For one moment her face tightens. The ghost of the old fighter surfaces, furious and terrified, trying to force a word through her mouth.
<<speech "Caldwell">> "Final calibration." <</speech>>
The trigger crushes it. Her expression empties.
He drags her from the couch and bends her over the dark wooden desk, her cheek and forearms pressed to the surface. Caldwell stands behind her in his white shirt and light trousers, one hand bearing down on her lower back while the other steadies her hip. He drives into her from behind, making her body rock against the wood. Tight angles catch his cock sliding in and out; he pulls free briefly, holds himself against her, then pushes back inside and continues the deep strokes.
<video src="img/Casey/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Say it, you worthless little thing." <</speech>>
<<speech "Casey">> "I'm yours, Master." <</speech>>
The answer comes without a trace of the woman who once kicked open his door. Caldwell gives her ass one final, possessive slap and steps back.
<<speech "Caldwell">> "Get up. Get dressed. Get the fuck out of my office." <</speech>>
His voice is cold and dismissive now, the thrill of the conquest already fading. She slowly pushes herself up, her body aching. She dresses with mechanical movements, her face a blank, tear-streaked mask. She doesn't look at him.
<<speech "Caldwell">> "You'll remember none of this. Just another boring fucking seminar. Now get out." <</speech>>
She turns and walks out the door, the sharp-tongued, defensive fighter completely shattered, leaving behind only a silent, programmed doll, forever marked inside and out by his sleazy, absolute dominance.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Carolina/Normal.jpg">
The email concerned Carolina's volunteer clearance at Havenwood.
Caldwell and Carolina were not strangers, although they barely knew each other. Chanel had introduced them at a Havenwood open house, then again when Caldwell attended a campus-security inspection. Carolina knew him as Professor Caldwell, one of Chanel's university colleagues and the man responsible for security compliance. Caldwell knew her as one of Chanel's Havenwood residents: Jasper's blonde foster sister, orphaned young and now grown into one of the house's regular adult volunteers. Until now, their conversations had never gone beyond polite greetings.
What he knew of her personality came from watching the open house. Carolina was friendly, bright, and eager to put nervous guests at ease. He had also watched her imitate Miss Kali's flirtatious hair toss while speaking to a donor, catch her hair on an earring, and abandon the attempt in a fit of embarrassed laughter. The sweetness was genuine. The seduction was always borrowed and badly fitted.
Carolina helped with weekend intakes, drove younger residents to appointments, and signed the same safeguarding forms as every adult who worked in the house. The university had recently taken over part of the screening process through campus security. Caldwell's name appeared at the bottom of the appointment notice.
She arrived in her white crop top and denim shorts with a tote full of forms, blonde hair falling past her shoulders. She expected fingerprints and a background questionnaire.
<<speech "Caldwell">> "Carolina. We met at Havenwood with Chanel." <</speech>>
<<speech "Carolina">> "At the safety inspection. I remember." <</speech>> She lifted the forms. <<speech "Carolina">> "Chanel said you were handling the new clearance." <</speech>>
Gina had told her that a little charm made paperwork move faster. Carolina attempted a slow smile.
<<speech "Carolina">> "That's a very... authoritative tie." <</speech>>
Silence.
<<speech "Carolina">> "I heard it after I said it." <</speech>>
Caldwell's professional smile did not move.
<<speech "Caldwell">> "Come through." <</speech>>
He led her through his office into a private training suite with a projector, a grey tufted headboard, and a brick accent wall.
<<speech "Carolina">> "This looks more like a bedroom than a screening room." <</speech>>
<<speech "Caldwell">> "The university leases furnished suites. Sit down." <</speech>> His professional smile stayed in place. <<speech "Caldwell">> "The clearance module measures attention, stress response, and susceptibility to distraction. You will watch the screen and follow the breathing prompts." <</speech>>
<<speech "Carolina">> "How long does it take?" <</speech>>
<<speech "Caldwell">> "However long you require." <</speech>>
The answer should have bothered her. His tone made it sound routine.
The projector began with policy slides and soft instructions. A low hum threaded beneath them. Carolina answered questions about emergency contacts, house access, and her responsibilities at Havenwood. Caldwell dimmed the room another degree and asked her to watch a pale point moving through concentric rings.
<<speech "Caldwell">> (recording) "Follow the point. Breathe when it expands. Let the room narrow to the screen. Each completed cycle brings you closer to clearance." <</speech>>
The session unfolded slowly. Her eyes watered. She shifted in the chair, asked how much longer, and tried to look toward the clock. Caldwell redirected her each time with the same mild phrase.
<<speech "Caldwell">> "You want to be cleared, Carolina. Keep watching." <</speech>>
Forty minutes blurred into something longer. The projector hummed. The rings turned. Her breathing matched the recorded count. Every repetition of *cleared* carried a little more relief until the word itself felt like a hand smoothing her thoughts flat.
<<speech "Caldwell">> "When I say *cleared*, resistance becomes quiet. You complete the task in front of you. You remember only what serves the program." <</speech>>
Carolina's lips parted.
<<speech "Carolina">> "Cleared." <</speech>>
The mask dropped.
Caldwell stood over her with open contempt, no warmth left in his face.
<<speech "Caldwell">> "There it is. Havenwood's sweet little stray, desperate to pass any test that lets her keep pretending she belongs somewhere." <</speech>> He looked her over with a sneer. <<speech "Caldwell">> "And that pathetic flirting—copying louder girls because you have no idea what to do with your own body. Worthless imitation from an empty little thing." <</speech>>
He pointed to a black lace set on the bed.
<<speech "Caldwell">> "Put on the uniform. Show me what the house trained you to do when an authority gives you a place." <</speech>>
She changed into the strappy black bra, garter, thong, and sheer stockings. The small black silhouette tattoo on her hip showed above the lace. Caldwell made her kneel on the dark bedding, arch her back, and look over her shoulder. One hand rested on her rounded ass while her long waves fell down her back. A soft smile appeared because he told it to.
<video src="img/Carolina/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Pretty little garbage. You thought affection made you valuable. It only made you easy to position." <</speech>>
He ordered her into the brighter adjoining bedroom and stripped the lace away. Carolina lay nude on white sheets between fluffy pink pillows, one knee raised and legs spread. Caldwell knelt between them and put his mouth on her. Her blonde hair fanned across the pillow; her head tipped back, eyes half-closed, hips rolling gently beneath his grip.
<video src="img/Carolina/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When her body tightened, he stopped before she could finish.
<<speech "Caldwell">> "You don't get a reward for being receptive. You get cleared." <</speech>>
He dressed her by command, folded the black lace into her tote, and restored the pleasant voice she had heard at the beginning.
<<speech "Caldwell">> "The review is complete. You experienced a standard relaxation exercise and nothing more. Havenwood remains approved. You will return when the follow-up notice arrives." <</speech>>
Carolina walked out carrying the forms and the lingerie. She remembered a screen, a signature, and a vague embarrassment she could not place. At Havenwood she smiled through dinner exactly as usual.
The word *cleared* stayed lodged at the edge of every thought.
<<elseif _s is 2>>
<img src="img/Carolina/Corr1.jpg">
The follow-up form appeared in Carolina's tote already signed.
She stared at the signature in her bedroom, dressed in a white halter crop top and black micro shorts. It was hers. She did not remember writing it. A thin silver choker pressed cool against her throat while she read the appointment line again.
She went to Caldwell intending to demand the raw screening data. At the door she tried the bright smile that usually made tense conversations easier.
<<speech "Carolina">> "Hi. Nice tie again." <</speech>> She stopped herself. <<speech "Carolina">> "No. I am not doing that twice." <</speech>>
The smile vanished.
<<speech "Carolina">> "Something happened during that session." <</speech>> She set the form on his desk. <<speech "Carolina">> "I lost part of it. I want the recording and I want my file." <</speech>>
<<speech "Caldwell">> "Of course." <</speech>> He gestured to the projector chair. <<speech "Caldwell">> "The memory test is contained in the follow-up module. Sit, and we will recover exactly what the program recorded." <</speech>>
She did not trust the explanation. Her body sat anyway.
The re-induction worked over her for nearly an hour. White light pulsed across the screen. Caldwell's recorded count wore down every attempt to stand. Carolina kept a hand closed around the armrest until her fingers slowly opened.
<<speech "Caldwell">> (recording) "The file is clean. The subject is calm. The volunteer is cleared." <</speech>>
<<speech "Carolina">> "Cleared." <</speech>>
Her anger vanished from her face.
Caldwell dragged her to the white-sheeted bed and put her on her stomach, legs bent with her feet lifted behind her. Carolina's blonde hair was gathered away from her face; the small black tattoo remained visible on her hip.
<<speech "Caldwell">> "Use your mouth, you needy little stray. This is the only intake you're qualified to process." <</speech>>
She leaned forward on her elbows, took him deep, and worked him with slow, focused strokes. Her cheeks hollowed. Saliva shone along his cock as her back arched and her legs stayed raised behind her.
<video src="img/Carolina/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "All that sweetness for this. A warm mouth, an empty head, and a signature wherever I put the line." <</speech>>
He rolled her onto her back and made her hold still on the white sheets. Her gold necklace rested against her collarbone. Carolina tilted her face upward, mouth open and tongue extended, eyes locked on him while he stood above her.
<<speech "Caldwell">> "Keep that worthless mouth open. Catch what you're given." <</speech>>
She waited with soft, eager anticipation, lips parted and ready. Caldwell stroked himself over her face and came across her tongue, lips, and chin. Carolina held the pose through every pulse, then let the thick white strands drip down toward her neck, her expression settling into quiet satisfaction as she accepted the facial.
<video src="img/Carolina/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Pathetic. The sweet little foster girl, grateful to wear my filth." <</speech>>
He woke her before dismissing her. Carolina left with the file she had requested. Every page was blank.
At Havenwood she locked the black lace in the bottom of a drawer and told herself she would report him. The anger was real. So was the way her pulse softened whenever she imagined him saying *cleared*.
<<elseif _s is 3>>
<img src="img/Carolina/Corr2.jpg">
Carolina came straight from an art showcase in a neon-yellow fishnet crop top, metallic silver shorts, and black fishnet stockings. Gina had chosen the outfit and called it fearless. Carolina did not feel fearless, but she carried the blank file under one arm and kept her other hand closed around her phone, ready to call Chanel the moment Caldwell tried to stop her leaving.
She tried to summon one of Casey's cutting lines, found nothing, and chose honesty instead.
<<speech "Carolina">> "I'm scared of you, and I'm still not sitting in that chair." <</speech>>
Caldwell closed the office door.
<<speech "Caldwell">> "No. The chair has finished with you." <</speech>>
<<speech "Carolina">> "I'm taking this to the university. Then I'm taking it to the police." <</speech>> Her voice shook but did not break. <<speech "Carolina">> "You are never getting near Havenwood." <</speech>>
For a moment she was fully herself—the young woman who loved that house, Jasper's foster sister, stubborn enough to stand between Caldwell and its door.
He smiled at the effort.
<<speech "Caldwell">> "Cleared." <</speech>>
Her phone slipped from her hand.
The trigger moved through her in visible stages: shoulders lowering, jaw loosening, fury draining from her eyes. She fought long enough to whisper Jasper's name. Then the word reached the deepest layer and the last resistance folded.
<<speech "Caldwell">> "Take off that ridiculous costume. Pull the pink bottoms from the bag to your thighs and show me what's left of Havenwood's brave little defender." <</speech>>
She obeyed. Carolina stood topless in the bright pink bottoms, pulled them down to mid-thigh and covered her pussy with both hands only because he ordered the pose. Barefoot, blonde hair falling straight, she looked at him with a soft, absent expression.
<img src="img/Carolina/Corr3.jpg">
<<speech "Caldwell">> "Nothing. That's what's left. A pretty vacancy wearing a foster family's name." <</speech>>
He stripped the bottoms away and lay back on the white bed. Carolina climbed over him, fully nude, and settled astride with her legs wide. Her hands rested on her lower stomach as she rolled her hips, blonde hair falling around her shoulders, mouth open in soft moans. Caldwell let her work while he watched the final conflict disappear from her face.
<video src="img/Carolina/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Say it." <</speech>>
Carolina slowed above him. The last thread of self gathered behind her eyes and snapped.
<<speech "Carolina">> "I'm yours, Master." <</speech>>
Caldwell laughed, openly delighted.
<<speech "Caldwell">> "Of course you are. You were always going to end up as property. Havenwood just stored you until someone better claimed the asset." <</speech>>
He moved her onto the white couch and pulled a black-and-white plaid top over her arms, leaving it pushed above her breasts. One leg stayed raised high while he took her in steady thrusts. Carolina's face turned toward him, lips parted and brows furrowed.
When he pulled out, thick white cum leaked from her and trailed down. He held her open so she could watch the creampie spill.
<video src="img/Carolina/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Now earn the bed you sleep in. You will return to Havenwood, keep smiling, and make yourself useful. Intake schedules. Visitor names. Keys. I want every door before anyone knows I asked." <</speech>>
<<speech "Carolina">> "Yes, Master." <</speech>>
She went home with the blank file tucked under her arm. Carolina ate with the others, listened to Casey complain, helped Chanel in the kitchen, and kissed Jasper's cheek before bed. She was still friendly and bright. She still attempted Gina's hair toss, caught a strand on her necklace, and laughed at herself. Nobody saw anything missing.
Inside, she began cataloguing the house for Caldwell: which windows stuck, who came home alone, which friends could be invited without questions. Her awkward charm became useful camouflage; nobody suspected that her clumsy invitations now followed a list supplied by her Master.
The sweet orphan Havenwood had raised remained perfectly visible. The woman behind her had become the key to every room.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The knock on Dr. Caldwell's office door was sharp and impatient. Caprice let herself in without waiting for an answer, long dark hair swaying over the shoulder of her white high-neck crop top, hazel-green eyes scanning the room with a look of dry, analytical assessment. She was the university librarian — she'd spent years reading people, cataloguing them, filing them away. She wasn't impressed by professors.
<<speech "Caprice">> "Dr. Caldwell? Caprice from the library. Kane's office sent a memo — mandatory 'Faculty Focus and Resilience' screening. I'm on a tight schedule; my shift starts in forty-five minutes. Let's make this quick." <</speech>> Her voice was a low, dry monotone, laced with the sarcasm of someone who'd watched a thousand students and staff walk in and out of her library and knew exactly what a "screening" was worth.
Caldwell looked up from his desk, and a slow, private smile crossed his face. The librarian. The intellect shielded by cynicism. A woman who read people for a living — and had never once met the one person she couldn't read. He'd been waiting for a challenge like this.
<img src="img/Caprice/Normal.jpg">
<<speech "Caldwell">> "Ms. Caprice. A pleasure. We librarians are the unsung pillars of this university." <</speech>> He gestured to the chair before the projector screen, already humming. <<speech "Caldwell">> "The module is brief, and designed to be highly efficient. Twenty minutes, and you'll be on your way to your shift. If you find it useless, you're free to leave." <</speech>>
Caprice gave a slight, dismissive shrug and sat, crossing her legs. <<speech "Caprice">> "Twenty minutes, Doctor. I've got books to shelve." <</speech>>
The spiral turned in muted blues and silvers. The voice came layered under the hum.
<<speech "Caldwell">> (recording) Breathe in. Breathe out. Your thoughts slow. <</speech>> <<speech "Caldwell">> (recording) Your shoulders drop. Your mind empties. You are safe here. You are understood. <</speech>>
She laughed once — a dry, dismissive sound — and kept watching, because she was a professional, and she could do the module and be done. She'd seen a hundred of these. The spiral turned. The voice continued, slow and relentless. Her smirk faded. Her shoulders dropped. Her breathing slowed to match the pattern, and somewhere past the half-hour mark — the clock on his desk had long crossed the hour — she sat perfectly still, head tilted, eyes fixed and glassy, a faint, empty smile on her lips. The librarian who read everyone hadn't read a single thing about what was happening to her.
<<speech "Caldwell">> "Stand up, Caprice." <</speech>>
She stood. He led her into the dim high-rise room overlooking the nighttime city skyline through the floor-to-ceiling windows. <<speech "Caldwell">> "I have clothes for you. Put them on." <</speech>>
She changed without a word — into the black strappy harness lingerie with the gold hardware, the thigh-high stockings, the heels. She bent forward to adjust the garter straps, then straightened and slowly peeled the black cups of the harness top downward, fully exposing her bare breasts, looking toward him across the room. And his voice was a blade.
<<speech "Caldwell">> "The librarian. The one who reads everyone. Look at you now — posing like a whore in my office, because I told you to." <</speech>> He circled her slowly, contempt dripping off every word. <<speech "Caldwell">> "You've spent your whole life filing people away, Caprice. Classifying them. Deciding they weren't worth your time. And you couldn't read the one thing standing in front of you — the one person who was never going to be filed away." <</speech>>
Her lips parted. A faint blush climbed her neck. She didn't understand any of it — she only knew she wanted his approval, needed it, and she couldn't stop the small, eager smile that crept across her face.
She walked over, straddled his lap, and they shared a deep, open-mouthed kiss, his hands gripping her waist and hips — then she stood over him, and he leaned in to kiss and nuzzle her lower abdomen and the strappy crotch of her harness.
<video src="img/Caprice/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her on her back on the textured white bedspread, still in the open black strappy lace harness that left her breasts and lower body exposed — and she lay with her legs spread and bent, one hand holding the black wand vibrator pressed firmly against her vulva, the other spreading her labia, her head tilted back, mouth open, eyes closed or rolled upward as her body shifted and tensed with the continuous stimulation, and it was only then, in the haze, that she realized: she hadn't decided to do any of this. Her hand was moving because he'd told it to.
<video src="img/Caprice/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There she is. The woman who thought she could read me." <</speech>> He looked down at her, cold and satisfied. <<speech "Caldwell">> "You're the one who got read, Caprice." <</speech>>
When she came back to herself, she was dressed, sitting in the chair, and the screening was over, and she left for her shift on time — and she couldn't remember the high-rise room at all, only that the module had been "unusually effective," and that she'd be back for the follow-up.
<<elseif _s is 2>>
The email came mid-week: *Faculty Focus — follow-up screening. Your attendance is requested. — Dr. Caldwell.*
Caprice told herself it was mandatory. That was the lie that let her walk across campus, sharp and professional, certain she was still the one who read people. She'd dressed carefully — and she couldn't remember why she'd bought the sheer black set, only that she wanted to look good for the screening.
<img src="img/Caprice/Corr1.jpg">
Caldwell opened the door, and the contempt in his eyes was so casual it was almost kind. <<speech "Caprice">> "Dr. Caldwell. The follow-up." <</speech>>
<<speech "Caldwell">> "Yes. Close the door, Caprice. Lock it." <</speech>>
She did, without deciding to. The lock clicked, and the projector was already on, and his voice wrapped around her before she could finish the thought.
<<speech "Caldwell">> (recording) You trust me, Caprice. You've always trusted me. Kneel. <</speech>>
Her knees bent. A flicker of confusion crossed her sharp face — <<speech "Caprice">> "I — what — " <</speech>> — and he looked down at her with open, ugly pleasure.
<<speech "Caldwell">> "Don't pretend to be surprised. You came because I told you to, and some small, stupid part of you knew it the whole walk over. You're not here for a screening, Caprice. You're here because you belong to me now — the librarian who read everyone, on her knees because I said kneel." <</speech>>
He sat, and she leaned over him as he lay back, her bare breasts hanging as she gripped the base of his cock with one hand and took the head into her mouth — moving her head up and down in a steady rhythm, lips sealed around the shaft, eyes closed or half-lidded, her free hand resting on his torso for support as she continued the slow, deliberate sucking motion.
<video src="img/Caprice/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up and had her kneel naked before the large nighttime city-view window — and she looked up, mouth open, as he stroked his cock above her face, and thick white fluid shot across her tongue, her lips, her cheeks, her chin — and she kept her mouth wide, tongue extended, continuing to lick and suck the head while saliva and semen dripped down her chin, her eyes alternating between closed and looking upward.
<video src="img/Caprice/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The librarian. The one who read everyone." <</speech>> He wiped a strand from her chin, almost lazy. <<speech "Caldwell">> "You've read every book in that library, Caprice. You couldn't read the one thing standing in front of you. Now you can't even read yourself." <</speech>>
She went home that night and told herself the screening had gone well, and she smiled at her phone, and she didn't remember the city-view window or the taste of him — only that her work required more of Dr. Caldwell's "follow-up," and that she felt a strange, hollow happiness she couldn't explain.
<<elseif _s is 3>>
The library was closing, and Caprice was at her desk, and the woman at that desk wasn't Caprice anymore. She moved through the days like a ghost — flat smile fixed on her face, shelving returns on autopilot, answering questions with words that sounded right and meant nothing. The students thought she was having an off week. But under the smile, the pull never stopped, a low, constant hum she couldn't name, a name she couldn't stop turning over like a coin in her pocket.
She told herself she was fine. She was a professional. She'd been fine her whole life. But the hollowness kept growing at the edge of every conversation, and one evening she found herself standing outside his office door without being able to point to the moment she'd decided to come.
<img src="img/Caprice/Corr1.jpg">
She knocked. He opened the door, and the smile on his face was pure, delighted cruelty. <<speech "Caprice">> "I — I don't know why I came," <</speech>> she said, and her voice was thinner than it had ever been. <<speech "Caprice">> "I've been fine all week. I just — I keep feeling like something's missing — " <</speech>>
<<speech "Caldwell">> "You thought of me," <</speech>> he finished. <<speech "Caldwell">> "You're conditioned, Caprice. Like a dog that hears a bell. You're not here because something's missing. You're here because I've spent weeks hollowing you out, and now you can't stand without me." <</speech>>
She shook her head, tried to back away — and the projector hummed to life behind her, and the spiral turned, and the voice wrapped around her like a hand closing on the back of her neck.
<<speech "Caldwell">> (recording) The library is mine, Caprice. The campus is mine, through you. Let go. Let go, and serve. <</speech>>
She fought it. That was the terrible, bright thing — she fought it, her nails biting into her palms, some last scrap of the sharp librarian who'd never been wrong about a person holding on with everything it had. But she'd sat through two sessions, and the conditioning ran deeper than her will, and the spiral turned, and her hands fell, and her shoulders dropped, and the hollow peace slid over her like a second skin.
<<speech "Caldwell">> "There she is. The librarian — finally a real piece of work." <</speech>> He laughed at his own joke, cruel and pleased. <<speech "Caldwell">> "Bend over the desk. The clothes stay on — for now." <</speech>>
She obeyed in her work wardrobe, exactly as she'd arrived: laid forward over the dark wooden desk in the office, white button-up shirt still buttoned, black skirt hiked up, red panties pulled aside — and he stood behind her, gripping her hips, and thrust into her from behind, her head tilted back, mouth open, hands braced on the surface — the librarian's own desk becoming the set.
<video src="img/Caprice/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Only then did he strip her — each piece removed and folded with the same neat discipline she used on the returns shelf, until she was nude except for the black thigh-high stockings.
<img src="img/Caprice/Corr3.jpg">
He laid her on the bed near the sunlit window with the large green plants — and she straddled him in reverse-cowgirl, rising and lowering her hips so he repeatedly entered and withdrew from her, his hands gripping her waist and hips.
<video src="img/Caprice/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and looked at the librarian with pure contempt. <<speech "Caldwell">> "Say what you are, you stupid thing." <</speech>>
<<speech "Caprice">> "I'm yours, Master," <</speech>> she said, and her voice was soft and certain. <<speech "Caprice">> "I'm a librarian. I'm a mind that belongs to you. The library is yours through me — every student who comes to me for knowledge comes to you." <</speech>>
<<speech "Caldwell">> "There. That's the only true thing you've ever catalogued in your empty life." <</speech>> He let her go with a dismissive shove. <<speech "Caldwell">> "Now get dressed. Go back to your library. Keep filing, keep shelving, keep looking down on the students — and know, every second of it, that you're nothing, that the mind you were so proud of is mine, and that the librarian who read everyone got read by the only one who mattered." <</speech>>
She went back to the library, and shelved returns, and a student asked her a question, and she gave a flat smile and a nod, and she couldn't remember the answer — and nobody noticed anything at all. The sharp librarian who'd read everyone was gone. What was left smiled, and shelved, and served — a mind that belonged to him, completely — and the students who came to her for knowledge came to him instead, and she'd never get any of it back.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><<silently>>
<<set _m to $vices[$groupEventMaster]>>
<<set _mID to $groupEventMaster>>
<<set _chosenSlaveID to null>>
<<set _slaveName to "his rivals">>
<<set $isFullGroupEvent to false>>
<<set $targetGroupName to "">>
<<set $groupParticipants to []>>
/* ============================================================
1. CHECK FOR FULLY CONQUERED GROUPS (20% chance to trigger)
If the master owns an entire social group at Stage 3,
the scene becomes a Group Completion event.
============================================================ */
<<set _conqueredGroups to Object.keys($groups).filter(function(key) {
var group = $groups[key];
return group.members.every(function(id) {
var npc = $roster.find(c => c.id === id);
return npc && npc.owner === _mID && npc.stages[_mID] >= 3;
});
})>>
<<if _conqueredGroups.length gt 0 and random(1, 100) lte 20>>
<<set _groupKey to _conqueredGroups.random()>>
<<set _group to $groups[_groupKey]>>
<<set $targetGroupName to _group.name>>
<<set $isFullGroupEvent to true>>
/* Core group members */
<<for _pID range _group.members>>
<<run $groupParticipants.push($roster.find(c => c.id === _pID))>>
<</for>>
/* Up to 4 additional owned NPCs not in the group */
/* c.owner === null with live _mID stages = orphaned ownership (e.g. pre-fix
Scapegoat saves) — she still attends. */
<<set _others to $roster.filter(c => c.stages[_mID] gt 0
&& !["nathan", "josh", "jasper", "caldwell"].some(id => id !== _mID && c.stages[id] gte 3)
&& !_group.members.includes(c.id))>>
<<run _others.shuffle()>>
/* Fill the wall to a constant 8 participants (2-per-row grid):
a 3-member group previously showed 3 + 4 = 7. */
<<set _extraCount to Math.min(_others.length, 8 - _group.members.length)>>
<<for _i to 0; _i lt _extraCount; _i++>>
<<run $groupParticipants.push(_others[_i])>>
<</for>>
<<else>>
/* ============================================================
2. FALLBACK: STANDARD MASS RESONANCE
Participant pool varies by master identity and slave status.
============================================================ */
<<set _hasSlaves to _m.slaves.length gt 0>>
<<set _roll to random(1, 100)>>
<<if _mID === "josh" and _hasSlaves and _roll gt 50>>
/* Josh showcases his slave's former NPCs */
<<set _chosenSlaveID to _m.slaves.random()>>
<<set _chosenSlave to $vices[_chosenSlaveID]>>
<<set _slaveName to _chosenSlave.name>>
<<set _slaveTargetList to [..._chosenSlave.keys, ..._chosenSlave.backups]>>
<<set _eligible to $roster.filter(c => _slaveTargetList.includes(c.id) && c.stages[_mID] gte 1
&& !["nathan", "josh", "jasper", "caldwell"].some(id => id !== _mID && c.stages[id] gte 3))>>
<<if _eligible.length is 0>>
<<set _eligible to $roster.filter(c => c.stages[_mID] gte 1
&& !["nathan", "josh", "jasper", "caldwell"].some(id => id !== _mID && c.stages[id] gte 3))>>
<</if>>
<<elseif _mID === "caldwell" and _hasSlaves and _roll gt 30>>
/* Caldwell runs a mass conditioning session under slave supervision */
<<set _eligible to $roster.filter(c => c.stages.caldwell gte 1
&& !["nathan", "josh", "jasper"].some(id => c.stages[id] gte 3))>>
<<set _slaveName to _m.slaves.map(id => $vices[id].name).join(" and ")>>
<<else>>
/* Subjects = every girl this master holds at Stage 1+, except
girls fully conquered (Stage 3) by another vice. Ownership does
not matter: a contested girl (his 1 vs a rival's 2) still
attends, and orphaned-ownership saves are covered for free. */
<<set _eligible to $roster.filter(c => c.stages[_mID] gte 1
&& !["nathan", "josh", "jasper", "caldwell"].some(id => id !== _mID && c.stages[id] gte 3))>>
<</if>>
<<run _eligible.shuffle()>>
<<set $groupParticipants to _eligible.slice(0, Math.min(_eligible.length, 8))>>
<</if>>
/* ============================================================
3. GAUGE GAIN
+10% per participant, +10 bonus for full group event.
Uses adjustGauge() for Crimson Fever eclipse compatibility.
============================================================ */
<<set _baseBonus to ($groupParticipants.length * 10)>>
<<if $isFullGroupEvent>> <<set _baseBonus += 10>> <</if>>
<<run adjustGauge(_mID, _baseBonus)>>
/* ============================================================
4. DAY ADVANCE — skipped when viewing from the Gallery
============================================================ */
<<if $galleryMode>>
/* Gallery archive viewing: the game clock is untouched. */
<<else>>
<<set $gameDay += 1>>
/* This path advances the day in Midnight_Recap's place (mass
resonance nights defer it) — the daily Apex limiter must
reset here too, or a steal on the previous day blocks the
next eclipse day's pounce. */
<<set $joshStealUsedToday to false>>
<<set $activeTurn to "none">>
<</if>>
<</silently>>
<h1 style="text-align:center; color: #ff00ff; text-shadow: 0 0 15px #ff00ff;">MASS RESONANCE</h1>
<div class="narrative" style="border: 2px solid #444; padding: 25px; background: #111;">
<p>The air on campus is heavy, vibrating with a frequency only the initiated can hear. <<print _m.name>> has summoned his circle to a hidden corner of the university.</p>
<<if $isFullGroupEvent>>
<p><strong style="color: gold;">GROUP COMPLETION:</strong> The entire <strong><<print $targetGroupName>></strong> is present, their wills perfectly aligned. But they are not alone. Other subjects follow in their wake, drawn by the absolute authority <<print _m.name>> now exerts over this sector of campus.</p>
<<elseif _mID === "josh" and _chosenSlaveID !== null>>
<p>Josh has gathered the subjects that <strong><<print _slaveName>></strong> once considered his own, forcing his rival's former circle to serve him in a display of total dominance.</p>
<<elseif _mID === "caldwell" and _m.slaves.length gt 0>>
<p>Caldwell conducts a mass calibration. Under the watchful eyes of his enslaved rivals — <<print _slaveName>> — the subjects are conditioned to serve their new, absolute Master.</p>
<<else>>
<p>The Master channels his Vice through the collective, using the presence of each girl to reinforce the submission of the others. The resonance grows stronger with every shared breath.</p>
<</if>>
<div style="background: rgba(255,0,255,0.1); border: 2px solid #ff00ff; padding: 20px; color: #ff00ff; text-align: center; font-family: monospace; font-size: 1.5em; font-weight: bold;">
<<if $isFullGroupEvent>>
<span style="color: gold;">GROUP UNITY BONUS (+10%)</span><br>
<</if>>
RESONANCE SPIKE: +<<print _baseBonus>>% GAUGE
</div>
</div>
<<groupVideoWall $groupParticipants _mID>>
<hr style="margin: 40px 0; border-color: #333;">
<div style="text-align: center; padding-bottom: 80px;">
<<if $galleryMode>>
[[Return to Gallery|Gallery]]
<<elseif ($gameDay - 1) % 5 === 0>>
[[THE SKY TURNS DARK...|Eclipse_Event]]
<<else>>
<<link `"Awaken to Day " + $gameDay` "EndTurnLogic">><</link>>
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The email was aggressively boring. "Student Records Verification — Cheer Program. Your signature is required on the updated squad roster and liability file. Dr. Caldwell's office, 4:00 PM. Fifteen minutes." Blake almost deleted it. But it was official, and it was from Dr. Marcus Caldwell — the philosophy professor who ran half the campus from behind a desk — and you didn't blow off Dr. Caldwell over fifteen minutes of paperwork.
She dressed for the meeting the way she dressed for everything: to look like the it-girl, because that was the uniform she'd learned to wear. Not because she was chasing anything. Because it was easier than being seen as anything else.
<img src="img/Blake/Normal.jpg">
His office was dim and wood-paneled, the kind of room that smelled like old books and older authority. Caldwell sat behind the desk, bald head gleaming, dark eyes fixed on her with the patience of a man who graded people for a living. He didn't flatter her. He didn't smile. He slid the roster across the desk and watched her sign it, and then he didn't let her leave.
<<speech "Caldwell">> "Before you go. A brief survey. The university is evaluating student stress levels across campus programs, and the cheer squad is one of our flagged demographics." <</speech>> He gestured to a large leather chair in the center of the room. <<speech "Caldwell">> "Sit. This will only take a few minutes." <</speech>>
She sat. The chair was bigger than it looked, black leather, deep. Across the room, a small projector flickered to life — abstract colors, a low rhythmic hum. Caldwell's voice dropped into a calm, clinical drone.
<<speech "Caldwell">> "Focus on the pattern. Let your mind relax. This measures focus and composure under mild stress." <</speech>>
The colors swirled. The hum found the rhythm of her heartbeat. She felt her shoulders loosen, her thoughts grow slow and soft — a pleasant, drifting fog settling over her will. She didn't notice when the survey stopped being about stress and started being about her.
<<speech "Caldwell">> "You're tired, aren't you? Everyone wanting something from you. Everyone looking at the surface." <</speech>> His voice was silk, weaving through the hum. <<speech "Caldwell">> "In here, you can let go. In here, no one is watching. You can stop performing." <</speech>>
And she did. Her hands moved without her permission — unbuttoning, undressing, until she was naked in the black leather chair, legs spread, fingers between her thighs, touching herself while the hum and the colors held her in their grip. A machina soon started moving, in and out of her folds.
<video src="img/Blake/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She moaned, smiled, hated herself, and couldn't stop — her body responding to his voice like a puppet on a string. When it was over she was shaking, humiliated, and aching.
<<speech "Caldwell">> "Interesting. The body responds regardless of the mind's objections." <</speech>> He made a note. <<speech "Caldwell">> "You'll do. One more test. Put this on." <</speech>>
He handed her a set of black lace lingerie — a sheer bra with a floral pattern, a matching thong with blue accents — and she put it on without asking why, her will too soft to question him.
<img src="img/Blake/Corr2.jpg">
He settled onto the leather couch and patted the cushion beside him, and she went to him like a moth to a flame.
<video src="img/Blake/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He kissed her — unhurried, clinical, one hand sliding down her body, fingers finding her through the lace, working her slowly while she moaned into his mouth. It was intimate in a way that made her want to crawl out of her skin — and she couldn't make herself stop, couldn't make herself pull away.
<<speech "Caldwell">> "The survey will require follow-ups. Private ones. You'll be available whenever I require you." <</speech>> His fingers kept working. <<speech "Caldwell">> "Do you understand, Miss Blake?" <</speech>>
<<speech "Blake">> "Yes." <</speech>> The word came out wrecked, and she didn't know why she said it, only that saying no felt impossible.
<<speech "Caldwell">> "Good. We begin again soon." <</speech>>
She left his office with the scent of him on her skin and her will hanging by a thread. She told herself she'd never go back.
She knew she would.
<<elseif _s is 2>>
She found herself outside his office without quite deciding to walk there. Her feet had carried her across campus like they belonged to someone else — someone who was already his. The fog had never really lifted. It followed her now, softer and more insidious, a voice in the back of her head that sounded like him: You'll go. You'll do what he says. You like it.
She'd told herself she wouldn't. She'd argued with her own reflection. And then his summons had buzzed her phone, and here she was.
<img src="img/Blake/Corr1.jpg">
He was seated behind his desk, watching her like a specimen. On the chair lay the schoolgirl outfit — a white top and a short plaid skirt that rode high on her thighs.
<<speech "Caldwell">> "The cheerleader. The queen of the campus. Reduced to a costume and a purpose." <</speech>> He gestured to the outfit, then to the floor before him. <<speech "Caldwell">> "Put it on. Then kneel." <</speech>>
She dressed in front of him, hands trembling, and knelt. Her knees hit the floor before her mind caught up, and the fog purred with approval.
<<speech "Blake">> "I shouldn't be here." <</speech>> The protest was small, barely a whisper, and it died in the silence.
<<speech "Caldwell">> "And yet you are. Your body knows what your mind is too weak to admit." <</speech>> He unzipped, and she took him into her mouth without being told — enthusiastic, sloppy, eager to please, deep-throating with strong eye contact, tongue working, smiling up at him like she'd been born for it.
<video src="img/Blake/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Look at you. The girl who had the whole campus eating out of her hand, brought to her knees for a man twice her age. You were arrogance and polish, and look what's left of you." <</speech>> His hand settled on the back of her head, guiding her. <<speech "Caldwell">> "Deeper. That's it. Good girl." <</speech>>
She obeyed, cheeks hollowing, eyes watering, wanting nothing but his approval. When he pulled her off, she was panting, lips swollen, and he led her to lie on her back on the floor.
<<speech "Caldwell">> "Open. Tongue out." <</speech>>
She obeyed, and he stood over her, stroking himself.
<video src="img/Blake/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Thick cum landed across her forehead, her nose, her cheeks, into her open mouth, and she kept her tongue out, eyes half-closed, receiving it. When he was done, she licked her lips and smiled up at him.
<<speech "Caldwell">> "The campus queen, glazed and smiling. You're learning." <</speech>> He crouched, wiped a strand from her cheek with his thumb, almost gently. <<speech "Caldwell">> "Your will is nearly gone, Miss Blake. And the more it erodes, the more you'll want this. That's the beautiful part." <</speech>>
She lay there, covered in him, and she couldn't even muster the shame she knew she should feel. All she felt was his approval, warm and addictive.
<<speech "Blake">> "Was I — good?" <</speech>> The words left her mouth before she could stop them, small and desperate, and she hated how much she needed the answer.
<<speech "Caldwell">> "Adequate. We'll aim for exceptional next time." <</speech>> He stood, buttoned himself, and looked down at her — the campus queen in a schoolgirl costume, spread on his floor. <<speech "Caldwell">> "Same time. I have more of you to undo." <</speech>>
<<elseif _s is 3>>
She came when he called, now. Every time. The fog was no longer a fog — it was her, and she was it. Blake dressed in whatever he left out for her, knelt when he gestured, opened when he asked. The it-girl was a memory. There was only Caldwell, and the quiet hum of the projector, and the hollow, perfect peace of a will that had stopped fighting.
<img src="img/Blake/Corr3.jpg">
He had her strip then change in a schoolgirl outfit that evening — white fishnet stockings under the short skirt — and she lay back in the big leather chair, legs spread wide, waiting for him. He settled over her, and she took him deep, looking at him with the eyes of a girl who'd stopped having her own opinions.
<video src="img/Blake/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He fucked her hard in the chair, and she moaned and smiled and looked at him like she'd been made for it, hands gripping the leather, body rocking with every stroke.
<<speech "Caldwell">> "Look at you. The untouchable queen, riding a professor's cock like a trained doll. You were so arrogant once. Now you're perfect." <</speech>>
<<speech "Blake">> "Thank you. Thank you, Dr. Caldwell." <</speech>> The words came out before she could stop them, and she meant them, and that was the horror — there was no horror left.
He pulled her off the chair, had her change into the black lace lingerie — the set from the first night — and settled her onto the leather couch, legs up, open for him.
<video src="img/Blake/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He took her rougher this time — hard, deep, relentless — and she cried out, loving it, wanting it. He finished inside her, buried to the hilt, and when he pulled out the creampie leaked from her, thick and white, and she watched it with dazed, adoring eyes.
<<speech "Caldwell">> "Mine. Completely. The survey is over, Miss Blake. There's nothing left to evaluate." <</speech>>
He stripped the lingerie off her — an act of ownership, not tenderness — and left her naked on the couch, open and used and smiling.
<<speech "Blake">> "I'm yours. I'll do anything you ask. Just please — don't send me away." <</speech>>
<<speech "Caldwell">> "You're not going anywhere, Miss Blake. You're far too useful like this." <</speech>>
She lay there, her will a memory, her body his, and she smiled — because somewhere in the ruin, she was finally, completely seen.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Caldwell and Kali had no personal relationship when he first noticed her outside the student center. Kali knew him by reputation as a severe philosophy professor with security authority—the sort of administrator students warned one another not to antagonize. Caldwell recognized Kali only as the blonde woman frequently seen with Elsa, Gina, and Jade until he watched her handle two students turning a scheduling mistake into a public argument.
Kali had not taken charge. She had noticed the frightened glance one kept sending toward the gathered crowd, made a warm joke that gave both people permission to lower their voices, then asked one simple question that exposed the real misunderstanding. Five minutes later, they were exchanging numbers instead of accusations.
A useful instrument had identified itself.
Before long, Kali accepted a paid invitation to Caldwell's campus affect-calibration study. The work sounded legitimate: measuring how accurately peer mediators recognized stress from posture, tone, and facial movement. It could strengthen a skill she already enjoyed using.
The observation suite resembled a colorful apartment bedroom rather than a laboratory. White sheets, covered furniture, bold wall art, and a monitoring screen were meant to make participants behave naturally.
Kali arrived in the neon lime crop top and matching skirt she had worn across campus, carrying a pink collared shirt with plaid skirt and a black-and-yellow off-shoulder crop top for the study's promised wardrobe-comparison segment.
<img src="img/Kali/Normal.jpg">
<<speech "Kali">> "You really test whether clothes change emotional readings?" <</speech>>
<<speech "Caldwell">> "Clothing changes posture. Posture changes interpretation." <</speech>> Caldwell adjusted the camera. <<speech "Caldwell">> "Your task is simply to identify what the recorded subjects feel." <</speech>>
The first clips were ordinary. Kali accurately identified embarrassment, irritation, concealed amusement, and the small jaw movement of someone preparing to lie. Caldwell praised nothing broadly. He confirmed exact observations, encouraging her to trust the apparatus whenever it agreed with him.
At minute twelve, the screen began inserting repeated geometric pulses between faces.
At minute twenty-one, the voices in the headphones split into overlapping emotional descriptions. Kali had to follow Caldwell's voice to identify the correct one.
At minute thirty-four, every answer he gave produced a warm release behind her eyes. Every disagreement created pressure and uncertainty.
At minute forty-seven, the faces disappeared. Only Caldwell's voice and the slow pulse remained.
<<speech "Caldwell">> (recording) "A reliable observer clears personal judgment before reading the room. Empty expectation. Empty resistance. Accept the authoritative signal." <</speech>>
Kali's hands rested loose on her thighs. Her bright blue-green eyes remained open but unfocused.
Caldwell stood in front of her.
<<speech "Caldwell">> "Check the room." <</speech>>
Her head turned toward him.
<<speech "Kali">> "The room is clear." <</speech>> Her voice was flat.
The professional mask left his face.
<<speech "Caldwell">> "Good. Yellow top on. Everything else off. Sit on the bed and show me your tits." <</speech>>
Kali obeyed. The black-and-yellow crop top slid beneath her breasts. She sat cross-legged on the white bed, pierced nipples and navel exposed, tattoos visible as she spread her knees and ran one hand over her stomach and thigh.
<video src="img/Kali/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Open your mouth. Look hungry." <</speech>>
Kali's lips parted. Her tongue appeared when he ordered it. Caldwell watched the emotionally intelligent woman reduced to a face awaiting whatever expression he assigned.
He threw the pink shirt, black tie, and plaid skirt onto the bed.
<<speech "Caldwell">> "Put your little school outfit back on. No panties." <</speech>>
She dressed without awareness. Caldwell pushed her onto her back against the silver-purple bedding, hiked the plaid skirt above her hips, and pulled one leg high. The “Rose” script tattoo curved across her hip and ass.
<<speech "Caldwell">> "Spread. Hold it. You're going to lie there while I eat this cunt, and you won't remember one second." <</speech>>
<video src="img/Kali/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her mouth opened in obedient moans while his tongue worked between her thighs. Her black-nailed fingers gripped the bedding. Physical pleasure moved across her face without restoring a single independent thought.
When he finished using her, Caldwell cleaned her, replaced her underwear, and returned every garment to its original state. He seated her before the dark screen.
<<speech "Caldwell">> (recording) "The wardrobe comparison produced minor posture differences. The sensor fit required routine adjustment. You completed a successful baseline. Controlled intervals contain no personal memory." <</speech>>
He waited three minutes, then said the trigger again.
<<speech "Caldwell">> "Check the room." <</speech>>
Kali blinked and looked around with her normal quick attention.
<<speech "Kali">> "Your camera placement is too obvious." <</speech>> She pointed toward the corner. <<speech "Kali">> "People will keep glancing at it and you'll mistake that for anxiety." <</speech>>
Caldwell smiled professionally.
<<speech "Caldwell">> "Excellent observation." <</speech>>
Kali left remembering forty-nine minutes of demanding but harmless calibration. She felt proud of the result and pleased that her instincts had impressed him.
She did not remember why her thighs ached.
<<elseif _s is 2>>
Kali returned to the residential observation suite because the first session seemed to have sharpened her attention. She had caught two hidden tensions during the week before either became an argument. Caldwell described that as measurable improvement; Kali now thought of him as an unpleasant but perceptive researcher, while Caldwell regarded her as a social sensor that was learning to report to one owner.
She arrived in a mauve-pink ribbed dress with a deep neckline revealing its satin bra, large hoops and dark nails completing the polished look.
<img src="img/Kali/Corr1.jpg">
Caldwell recorded the outfit as her natural baseline, then instructed her to change into the pink collared shirt, plaid skirt, and loose black tie required for the student-role simulation. Kali sat on the purple-sheeted bed and listened to paired voices through headphones, identifying which speaker concealed hostility.
This time the induction took fifty-three minutes.
Caldwell's voice became the stable tone beneath every recording. Faces on the screen blurred; his approval remained clear. The phrase **check the room** emptied each competing judgment until Kali waited for his signal alone.
<<speech "Caldwell">> "Check the room." <</speech>>
Her expression went blank.
<<speech "Kali">> "The room is clear." <</speech>>
Caldwell opened his trousers.
<<speech "Caldwell">> "Kneel on the bed. Shirt stays on. Suck." <</speech>>
Kali leaned forward, blonde hair falling around her face, pink shirt buttoned and black tie hanging between her breasts. She wrapped one hand around him and took him deep.
<video src="img/Kali/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "That's all that clever mouth is for in here. Deeper. Keep your eyes up." <</speech>>
Her cheeks hollowed. Saliva coated her lips and chin. She followed each crude correction immediately, no longer supplying clever observations of her own.
Caldwell stripped her completely and rolled her onto her back near the edge of the purple bed. Her gold necklace remained at her throat. He used her mouth until thick cum landed across her tongue and lips, then pushed himself back between them.
<video src="img/Kali/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Catch it. Clean it. Swallow." <</speech>>
Kali obeyed, eyes fixed upward while saliva and cum stretched between her mouth and him.
Afterward, Caldwell washed her face, dressed her, and restored the room. The cover sequence installed a memory of microphone placement, breath pacing, and recorded conflict-role dialogue.
<<speech "Caldwell">> (recording) "You completed voice calibration. The session was professional and uneventful. Private controlled intervals are inaccessible and irrelevant." <</speech>>
Kali woke animated and curious.
<<speech "Kali">> "The hostile speaker was the quiet one, wasn't she? Everybody watches the loud voice and misses the person who already decided what to do." <</speech>>
Caldwell wrote the observation down. Her intelligence was intact. More importantly, it now brought useful information back to him.
<<elseif _s is 3>>
By the final certification, Kali had started sending Caldwell short, unsolicited observations. His pre-session instructions told her to arrive in a burgundy strapless corset and matching sheer thong as a wardrobe-response baseline. The request should have been inappropriate; conditioned Kali treated it as another technical requirement and smiled while holding the lingerie at her hips.
<img src="img/Kali/Corr2.jpg">
A student in the library looked frightened whenever security walked past. Two committee members smiled in public and hated each other. A young woman in the café checked every entrance while pretending to study. Kali believed she was collecting examples for the research.
Caldwell understood that she was mapping vulnerabilities.
The last session lasted fifty-eight minutes. Purple sheets, tall brown tufted headboard, the familiar screen, and Caldwell's voice narrowed the world until one sentence contained every priority.
<<speech "Caldwell">> (recording) "Read everyone. Report useful fractures. Obey the authoritative signal. Controlled service leaves no memory. Check the room." <</speech>>
Kali's bright expression emptied.
<<speech "Kali">> "The room is clear." <</speech>>
Caldwell stripped her and lay back on the purple bed.
<<speech "Caldwell">> "Get on. Ride my cock. Make those pierced tits bounce." <</speech>>
She straddled him, completely nude except for the gold necklace. Her hips rolled and dropped in steady rhythm, mouth open, head tipping back as he watched the body execute pleasure on command.
<video src="img/Kali/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Good little sensor. Reads a whole crowd and still can't read that she's just a cunt on my lap." <</speech>>
Kali continued without reacting to the contempt. He moved her to the dark-gray couch, placed her on her back, and raised one leg. The inner-thigh tattoos framed her open body.
<<speech "Caldwell">> "Spread wider. Take it. Hold my load inside until I tell you otherwise." <</speech>>
<video src="img/Kali/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He drove into her until he finished deep. When he withdrew, a thick white bead leaked from her swollen opening. Caldwell made her hold the position while he inspected the result.
<<speech "Caldwell">> "This is what happens when I clear the room. All that feeling goes away, and the useful hole stays." <</speech>>
He cleaned and dressed her with impersonal efficiency. The final cover memory replaced the entire controlled interval with a successful live simulation: Kali had identified every staged conflict cue and earned certification.
When Caldwell released her, personality returned at once.
Kali sat up, looked at the frozen test frame on the monitor, and pointed toward a figure in the background.
<<speech "Kali">> "That one is pretending not to care, but she's watching who Caldwell approves of before she reacts." <</speech>>
She spoke about Caldwell in the third person because the simulation required it. She did not notice the perfection of the description.
Caldwell handed her the certificate.
Publicly, Kali remained mischievous, emotionally generous, and exceptionally observant. Privately, **check the room** erased every competing priority. She would identify fear, attraction, resentment, and isolation, report them to Caldwell, submit to whatever crude use followed, and retain only the harmless memory of helping his research.
The instrument had not been broken.
It had been calibrated to its owner.
<</if>>
</div>
<hr>
<div style="text-align:center;">
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
<p style="color:#ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
<p style="color:#00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The knock on Dr. Caldwell's office door was light and hesitant, followed by a soft, curious "Hello?" Kylie peeked in, long straight dark hair falling across her shoulder, expressive dark eyes wide with a mix of apprehension and intrigue. She was dressed in a cute purple halter top and a pair of fashionable distressed shorts, white ankle socks, radiating a youthful, approachable energy.
<img src="img/Kylie/Normal.jpg">
<<speech "Kylie">> "Dr. Caldwell? I'm Kylie. The professor said I should come see you about the new student support program? He said it was really important for everyone living at Havenwood. Is this, like, a therapy thing or...?" <</speech>> Her voice was sweet and melodic, laced with a playful, inquisitive tone.
Caldwell looked up from his desk, offering a warm, reassuring smile that didn't quite reach his eyes. He saw a perfect subject: young, deeply loyal, and curious. A blank canvas.
<<speech "Caldwell">> "Miss Kylie, yes! Thank you so much for coming. Please, come in. Have a seat on the sofa — it's more comfortable than the chair. And no, not therapy at all. Think of it as a 'mental focus' workshop, to help with the stresses of university life. It's perfectly safe and very relaxing. You'll feel wonderful afterwards." <</speech>>
He gestured to the plush white leather sofa. She hopped onto it, tucking her petite frame into the corner, hands folded in her lap. <<speech "Kylie">> "Okay, cool. As long as it's not, like, weird meditation chants or anything. Nathan said it helped him a lot, so I figured I'd give it a shot." <</speech>>
The lights dimmed, and the video began. It started with gentle, flowing images of water and soft music, and Kylie found herself unwinding almost immediately, her playful sarcasm giving way to genuine curiosity. The narrator's voice was kind and soothing, encouraging her to let go of her worries. But after a few minutes the presentation shifted. The music faded into a low, rhythmic hum, and the narrator's voice slowed, its tone becoming a hypnotic thrum that seemed to bypass her ears and resonate directly in her chest. The flowing water dissolved into abstract, pulsating waves of soft color that rippled across the screen.
<<speech "Caldwell">> (recording) Let go of the day, Kylie. The worries don't matter here. You don't have to think. You just have to rest. <</speech>>
Kylie blinked. A profound lassitude washed over her. Her thoughts — usually a comforting tapestry of family, friends, her idolization of Nathan — began to slow, then drift apart like clouds in a slow-moving sky. A deep, sleepy calm settled over her. It felt... safe. To just let go. To let someone else take care of everything for a moment. Her head felt heavy, and she sank deeper into the sofa, her body going limp. Her eyelids fluttered, then closed, her expression one of serene, empty peace.
Thirty minutes later, the screen faded to black. The lights clicked on. The warm, professional mask on Caldwell's face vanished, replaced by a cold, predatory smirk. He stood, silent, and walked over to the sofa, observing her transformed state — head tilted, breathing slow and even, the sweet, curious girl gone.
<<speech "Caldwell">> "Open your eyes, Kylie." <</speech>>
She did. Her dark eyes were glassy, fixed on him. He had her sit up, and he watched as she posed for him without being told — legs spread wide, a soft smile on her face, her hands moving to the straps of the purple halter top, sliding them down her shoulders. She pulled the top down, exposing her small, perky breasts and pink nipples, lifted it over her head and tossed it aside.
<video src="img/Kylie/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The sweet one. The one everyone thinks is innocent." <</speech>> He circled her slowly, contempt dripping off every word. <<speech "Caldwell">> "You walked in here asking if this was a therapy thing, all wide-eyed and trusting. Look at you now — topless on my couch, because I told you to. You're not innocent, Kylie. You're a child who never learned to be careful. And now you're mine." <</speech>>
Her lips parted. She didn't understand — she only knew she wanted his approval, needed it, and she couldn't stop the small, eager smile that crept across her face.
He had her lie back, and she fingered herself for him, the black thong pulled aside, her red-painted nails spreading her outer lips, two fingers circling and pressing into her wet pink opening, her face visible in the background, dark hair framing soft features as she watched him with half-lidded eyes and a growing smile.
<video src="img/Kylie/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When she came back to herself, she was dressed, sitting on the sofa, and the "workshop" was over, and she left feeling wonderful — the program must have been great, she felt so relaxed — and she didn't remember the white couch at all, only that she'd be back for the next session.
<<elseif _s is 2>>
Kylie found herself standing outside Dr. Caldwell's office. She didn't remember making the appointment, only that a deep, instinctual part of her told her she needed another "focus session." The pleasant, stress-free glow from the first visit had faded, leaving a nagging feeling of incompleteness. She knocked softly, her youthful energy replaced by a quiet, expectant stillness.
<img src="img/Kylie/Corr1.jpg">
The door clicked open. Caldwell stood there, his expression unreadable, a faint, almost medical smile on his lips. <<speech "Caldwell">> "Kylie. Right on time. Your follow-up is crucial for reinforcing the neural pathways we established. Come in." <</speech>>
She stepped inside, her movements fluid and unthinking. The office was different. The plush sofa was gone. In its place stood a simple, black leather examination chair, reminiscent of a dentist's chair but with thick, imposing leather straps dangling from its arms and legs. The air was colder, sterile.
<<speech "Kylie">> "Dr. Caldwell. I am here for my session." <</speech>> Her voice was a flat, monotone whisper, devoid of its usual playful lilt.
<<speech "Caldwell">> "Excellent. For this reinforcement module, we'll be using a more direct method of immersion. Please, remove your clothing and have a seat in the chair." <</speech>>
She undressed with the same detached efficiency as before, her top and shorts folded neatly on a small table. She climbed into the cold leather chair, the material sticking slightly to her bare skin. Caldwell moved around her, his movements precise and deliberate. He didn't strap her in. He didn't need to.
He took her to the bathroom — bright tiled walls, window blinds — and she knelt, nude from the waist up, and took his cock into her mouth, eyes fluttering closed then opening to look up at him, one hand with red nails wrapping around the base and stroking while she licked and sucked the head, then sliding deeper, cheeks hollowing, pulling back to swirl her tongue around the tip, saliva shining on her lips and the shaft.
<video src="img/Kylie/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her out and had her kneel on all fours on the striped carpet, completely nude, looking straight up at him with heavy-lidded eyes — and she stuck her tongue out and licked the head of his cock, then opened wide and took it into her mouth, saliva strings connecting her lips to the tip as she worked it with slow, deliberate sucks. She pulled off with a wet pop, smiled, and continued licking — then sat back slightly, cupped both breasts with her purple-nailed hands, and grinned up at him. <<speech "Kylie">> "Oh, goddamn." <</speech>> The sweet girl's voice, saying words she'd never said before.
<video src="img/Kylie/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There she is. The sweet one — finally speaking like what she is." <</speech>> He wiped a strand from her chin. <<speech "Caldwell">> "You're not a good girl anymore, Kylie. You're a thing that exists to please me. And the best part? Nobody will ever know. You'll smile at your $malerel, be everyone's sweetheart — and only I'll know what's underneath." <</speech>>
She went home, and smiled at her $malerel, and made him dinner — and she couldn't stop thinking about the office, and the taste, and the voice.
<<elseif _s is 3>>
Kylie was in her dorm room, scrolling through her phone. The hypnotic triggers had become a constant, low hum in the back of her mind, twisting her "focus" into a deep, instinctual need for "final calibration." A text message appeared on her screen from an unknown number. A single, stark command: My office. Now. The compulsion was undeniable. She dropped her phone, a flicker of confusion in her dark eyes, and walked out of her room, leaving the door ajar.
She arrived at Caldwell's office and found the door slightly ajar. She pushed it open and stepped inside. The room was bathed in the dim, orange glow of a single lamp. Caldwell was not at his desk. He was sitting on the black leather sofa, a half-empty bottle of bourbon and a glass on the floor beside him. He'd loosened his tie, his shirt unbuttoned at the collar. He looked up at her, a lazy, predatory smirk on his face. The professional mask wasn't just gone; it had been incinerated.
<<speech "Caldwell">> "Well, well. Look what the cat dragged in. The little $relation. I was wondering when you'd get the urge." <</speech>> His voice was a low, greasy rumble, slurred slightly with alcohol. He looked her up and down, his gaze lingering on her petite frame.
<<speech "Kylie">> "Dr. Caldwell. I am here for my final calibration." <</speech>> Her voice was a flat monotone, but her body was tense, a coiled spring of conflicting programming.
<<speech "Caldwell">> "Calibration? Is that what you think this is? Oh, you sweet, stupid little thing. This is the final exam. And you're about to get graded." <</speech>> He patted the cushion beside him. She came, and knelt on the floor at his feet, looking up at him with empty, devoted eyes.
<img src="img/Kylie/Corr3.jpg">
He pushed her onto the white leather couch, face-down and prone, torso stretched along the seat, head resting on her folded arms, ass raised and presented — and he drove into her steadily from behind, her smooth, rounded ass jiggling with every thrust.
<video src="img/Kylie/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The sweetest one on campus," <</speech>> he breathed, driving deeper. <<speech "Caldwell">> "The one everyone trusts. The one your $malerel thinks he's protecting. And look at you now — a hole and a smile, taking your Master's cock, because I conditioned you to need it." <</speech>>
He took her again, and she lay beneath him, eyes half-lidded, nothing behind them but him — and when he pulled out, thick white cum leaked from her, and she looked at him with a soft, empty smile.
<video src="img/Kylie/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and looked at her with pure contempt. <<speech "Caldwell">> "Say what you are, you stupid thing." <</speech>>
<<speech "Kylie">> "I'm yours, Master," <</speech>> she said, and her voice was soft and certain. <<speech "Kylie">> "I'm the sweet one. The one everyone thinks is innocent. And I belong to you. Nobody will ever know." <</speech>>
<<speech "Caldwell">> "There. That's the only true thing you've ever said in your empty life." <</speech>> He let her go with a dismissive shove. <<speech "Caldwell">> "Now get dressed. Go be the sweet girl. Smile at your $malerel. Be everyone's darling — and know, every second of it, that you're nothing, that the girl everyone trusts is the one I own." <</speech>>
She went back to her life, and smiled, and made Nathan pizza, and laughed at his jokes — and nobody noticed anything at all. The sweet kid who'd once wandered into his office by accident was gone. What was left smiled, and served, and belonged to him — completely — and the girl everyone trusted was the one he owned, and she'd never get any of it back.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><div style="text-align: center; margin-top: 10vh;">
<h1 style="color: #ff0000; text-shadow: 0 0 10px #ff0000; font-size: 3em;">ADULT CONTENT WARNING</h1>
<div class="narrative" style="max-width: 600px; margin: 0 auto; border: 2px solid #444; padding: 30px; background: #0a0a0a; line-height: 1.8;">
<p style="font-weight: bold; color: #eee;">This game contains adult content intended for mature audiences only.
All characters depicted are 18 years of age or older
All characters and events are entirely fictional
Any resemblance to real persons is purely coincidental.</p>
<p>By clicking "ENTER" below, you certify that you are at least <strong>18 years of age</strong> (or the legal age of adulthood in your jurisdiction) and that you consent to viewing adult themes.</p>
<p style="color: #888; font-size: 0.9em;">If you are under 18 or easily offended by the themes described, please exit now.</p>
</div>
<div style="margin-top: 40px; display: flex; justify-content: center; gap: 30px;">
<span class="custom-link" style="font-size: 1.5em;">
[[ENTER|Narrative_Config]]
</span>
<span style="font-size: 1.5em;">
<a href="https://www.google.com" style="color: #666 !important;">EXIT</a>
</span>
</div>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Jade received Caldwell's invitation directly.
The university was testing whether ordinary rooms produced more reliable attention data than sterile laboratories, and Caldwell needed adults willing to complete three private sessions in a furnished model apartment. Jade had scored unusually high on the preliminary sequence test. The invitation offered a modest payment, a written performance report, and the right to stop at any time.
She read every page before accepting. One consent item used *attention failure* where it plainly meant *attention shift*. Jade marked the wording and returned the form with a note explaining how it could make anxious participants feel judged.
That note decided Caldwell. Her accuracy was useful, but her instinct to improve the process for whoever came next interested him more. Jade did not merely notice errors. She placed them into context, considered the people affected, and acted. He wanted to find out how completely that kind of mind could be dismantled—and whether he could rebuild it without anyone outside the room noticing what had changed.
The model apartment was bright and impersonal: white couch, open kitchen, glass doors, carefully neutral decorations. Jade arrived in a red crop top, black denim shorts, and red platform heels.
<img src="img/Jade/Normal.jpg">
Caldwell greeted her in a black suit and showed her the laptop, wall camera, and emergency stop button. His manner was restrained and professional. Nothing in the room looked hidden.
<<speech "Jade">> "I corrected one phrase in the consent form." <</speech>>
<<speech "Caldwell">> "I saw your note." <</speech>>
<<speech "Jade">> "It probably seemed minor. It could still change how someone interprets a bad score." <</speech>>
<<speech "Caldwell">> "You assume the test should protect the subject's confidence." <</speech>>
<<speech "Jade">> "I assume accuracy includes the way instructions are understood." <</speech>> She glanced at the camera placement and then back to him. <<speech "Jade">> "Otherwise you are measuring confusion and calling it failure." <</speech>>
Caldwell smiled faintly.
<<speech "Caldwell">> "That distinction is precisely why you are here." <</speech>>
For the motion baseline, he gave her a white sweater and jean skirt. Reflective colors and loose accessories, he explained, interfered with the tracking markers. Jade changed in the bedroom, checked the fit in the mirror, and returned with the sweater neatly buttoned.
The first tasks were legitimate. Colored shapes appeared on the laptop; Jade repeated their order, identified missing steps, and corrected deliberately inconsistent instructions. She was fast without becoming careless. When Caldwell asked why she had paused before one answer, she explained her reasoning instead of simply defending the result.
Then the low tone began.
It sat beneath the next sequence so quietly that Jade did not notice it as a separate sound. The shapes slowed. Each one remained on the screen until Caldwell's recorded voice named it, and the next appeared before she could compare the two.
<<speech "Caldwell">> (recording) "One detail at a time. Let the next replace the last. If the order disappears, do not search for it. Wait. My voice gives the next step." <</speech>>
Jade lost the third symbol and restarted. On the second attempt she lost the first. Her brows drew together.
<<speech "Jade">> "The timing changed." <</speech>>
<<speech "Caldwell">> "Continue." <</speech>>
<<speech "Jade">> "I am continuing. I am also telling you the variable changed." <</speech>>
<<speech "Caldwell">> "Then account for it." <</speech>>
She tried. The demand gave her analytical mind something to grip, and Caldwell used that effort against her. Every attempt to reconstruct the pattern opened another gap. His recorded voice entered each gap with a simpler instruction.
<<speech "Caldwell">> (recording) "Do not recover the missing piece. Missing means empty. Empty means ready. Wait for the next step." <</speech>>
Forty-seven minutes after the tone began, the screen faded to white.
Jade remained seated, lips slightly parted, the unfinished sequence gone from her face. Caldwell closed the laptop.
<<speech "Caldwell">> "Stand." <</speech>>
She stood.
<<speech "Caldwell">> "Come here." <</speech>>
She crossed the room and stopped between his knees.
The professional restraint left his voice at once.
<<speech "Caldwell">> "Open the sweater. Show me what is under it." <</speech>>
Jade unfastened the buttons and exposed her breasts.
<<speech "Caldwell">> "Turn around. Skirt down." <</speech>>
She turned and lowered the jean skirt, revealing maroon underwear. Caldwell sat on the white couch and ran both hands over her buttocks and thighs while she faced away from him. He pulled her back against his chest, kissed her neck, then turned her for a slow kiss she returned without initiative.
<video src="img/Jade/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "How many shapes were in the last sequence?" <</speech>>
Jade searched the blank space and found nothing.
<<speech "Jade">> "I don't know." <</speech>>
<<speech "Caldwell">> "Good. Clever little brain already leaking out. Say what you do when you don't know." <</speech>>
<<speech "Jade">> "Wait for the next step." <</speech>>
<<speech "Caldwell">> "Whose step?" <</speech>>
<<speech "Jade">> "Yours, Master." <</speech>>
He took her into the bright bedroom. The laptop now displayed a slow black point expanding and contracting on a white field. Jade sat fully nude in the black chair beside the bed, striped pillows behind her.
<<speech "Caldwell">> "Legs apart." <</speech>>
She spread them.
<<speech "Caldwell">> "Touch your cunt. Keep watching." <</speech>>
Jade slid her fingers between her thighs. At first the motion was methodical, almost detached. The rhythm on the screen quickened and her hand followed. Her back softened against the chair; dark nipples tightened; her mouth opened as her fingers worked faster over wet flesh.
<video src="img/Jade/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Caldwell moved her to the edge of the white bed and made her continue until her legs trembled.
<<speech "Caldwell">> "Stop." <</speech>>
Her hand stopped immediately despite the unfinished pleasure.
<<speech "Caldwell">> "What matters more—finishing what you started or obeying me?" <</speech>>
<<speech "Jade">> "Obeying you." <</speech>>
<<speech "Caldwell">> "That is the first useful thought you have had in this room." <</speech>>
He dressed her, returned her to the chair, and restarted the harmless opening section of the test. Before waking her, he removed every controlled sexual minute and supplied a plain replacement: the later sequences had become repetitive, she had made several understandable errors, and Caldwell had shown her a more efficient way to stop overchecking.
Jade woke with the sweater buttoned and the performance sheet in her lap. She remembered a demanding but credible baseline. The small gaps in the session felt like concentration, not missing time.
<<speech "Jade">> "I still think the consent wording should change." <</speech>>
<<speech "Caldwell">> "Put the recommendation in your follow-up notes." <</speech>>
<<speech "Jade">> "I will." <</speech>>
Her mind was still hers when she left. Caldwell had only proved that, under the tone, he could begin taking it apart.
<<elseif _s is 2>>
Jade returned because the first report was useful. It identified habits she recognized—rechecking completed work, holding too many alternatives open, and treating every imperfect choice as unfinished. Nothing in the report explained the strange heaviness she had felt afterward, but a long attention test was an ordinary reason to be tired.
She also brought a revised consent paragraph.
<<speech "Jade">> "This version separates confusion from failure and tells participants when the timing changes." <</speech>>
Caldwell read it once.
<<speech "Caldwell">> "You worked on this without being asked." <</speech>>
<<speech "Jade">> "You told me to include the recommendation." <</speech>>
<<speech "Caldwell">> "And you made the document better." <</speech>>
<<speech "Jade">> "That was the point." <</speech>>
Her answer was neither smug nor defensive. She simply expected useful work to be done properly.
For the second motion baseline, Jade changed into a white cropped shirt and black lace panties. She stood beside the glass door while Caldwell calibrated the camera.
<img src="img/Jade/Corr1.jpg">
<<speech "Jade">> "Is the reduced clothing necessary for every session?" <</speech>>
<<speech "Caldwell">> "Only while the system tracks breathing, posture, and muscular hesitation." <</speech>>
<<speech "Jade">> "Then that should be stated more clearly in the participant notes." <</speech>>
<<speech "Caldwell">> "You may revise those after the test." <</speech>>
He intended to leave her able to revise anything he placed in front of her. The ability itself was not the enemy. Independent purpose was.
The second induction began with nested lists. Jade sorted names, times, and numbered tasks while the low tone pulsed beneath the recording. Whenever she completed a sequence, the screen erased it and demanded the same answer in reverse. Whenever she corrected an error, Caldwell's voice told her the correction had created another.
<<speech "Caldwell">> (recording) "Stop holding the list. Let it fall. Stop comparing. Comparison is noise. When thought breaks, my voice remains." <</speech>>
Jade pressed her fingers against her temple.
<<speech "Jade">> "The task contradicts itself." <</speech>>
<<speech "Caldwell">> "Resolve the contradiction." <</speech>>
<<speech "Jade">> "There is no valid resolution." <</speech>>
<<speech "Caldwell">> "Then stop trying to make one." <</speech>>
She resisted because abandoning a flawed problem felt irresponsible. Caldwell made responsibility the trap. The more carefully she tried to preserve the sequence, the more pieces the tone removed. Numbers lost their positions. Causes separated from outcomes. She knew she had objected but could no longer remember the objection.
<<speech "Caldwell">> (recording) "No order without my order. No conclusion before my conclusion. Hear. Follow. Forget." <</speech>>
Fifty-three minutes into the session, Jade could not keep a three-item plan intact.
Caldwell turned off the screen.
<<speech "Caldwell">> "Strip." <</speech>>
She removed the cropped shirt and panties and knelt naked before the white fireplace.
<<speech "Caldwell">> "Hands on your tits. Squeeze." <</speech>>
Jade cupped her full breasts, pressed them together, and worked them slowly up and down. Her eyes remained lowered until he snapped his fingers.
<<speech "Caldwell">> "Look at me, empty thing." <</speech>>
She lifted her face, mouth open, hands still kneading.
<video src="img/Jade/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "What were you trying to fix when you came in?" <</speech>>
Jade's hands paused.
<<speech "Jade">> "I don't know." <</speech>>
<<speech "Caldwell">> "Then your brain does not need it. Keep squeezing." <</speech>>
Her hands resumed.
He dressed her in a black sports bra and white wristbands, then placed a round green cushion on the wooden floor.
<<speech "Caldwell">> "Kneel." <</speech>>
Jade knelt.
<<speech "Caldwell">> "Mouth open. Tongue out." <</speech>>
She obeyed. Caldwell gripped her hair and pushed his cock between her lips. Jade took him deep, cheeks hollowing as she looked upward. Saliva and white fluid gathered at the corners of her mouth. When he pulled back, she kept her tongue extended while more dripped over her lips, chin, and cheeks.
<video src="img/Jade/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Suck it clean." <</speech>>
Jade closed her lips around him again.
<<speech "Caldwell">> "What fills the space where your own plan used to be?" <</speech>>
She pulled off only far enough to answer.
<<speech "Jade">> "Your order, Master." <</speech>>
<<speech "Caldwell">> "Good bitch. You do not need a reason. You need a command." <</speech>>
By the end of the controlled state, Jade could still understand individual words and perform individual tasks. What she could no longer do was assemble them into an independent purpose. Caldwell planted one surviving rule in the wreckage: when his voice supplied an order, that order was the correct next step.
He erased the sexual portion, dressed her, and restored a harmless memory of increasingly difficult sequencing exercises. In that memory, Jade had struggled, accepted a simpler method, and finished with an improved score.
She woke at the table with her revised consent paragraph beside the laptop.
<<speech "Jade">> "Did we review this?" <</speech>>
<<speech "Caldwell">> "You decided it was unnecessary for the pilot." <</speech>>
Jade looked at the page. The change still seemed sensible, but the impulse to argue had gone strangely quiet.
<<speech "Jade">> "Then I will leave it out of the final draft." <</speech>>
<<speech "Caldwell">> "A sound decision." <</speech>>
Jade left remembering a difficult success. Inside the controlled state, Caldwell had completed the destruction phase.
<<elseif _s is 3>>
Jade arrived for the final session carrying a clean summary of the pilot data. It was concise, accurate, and easier to read than Caldwell's original template. She had not lost her intelligence outside the apartment. If anything, she felt more decisive.
That apparent improvement was why she did not question the final appointment.
<<speech "Jade">> "The report removes duplicated measures and separates participant error from instruction error." <</speech>>
<<speech "Caldwell">> "You preserved the distinction." <</speech>>
<<speech "Jade">> "It matters." <</speech>>
<<speech "Caldwell">> "Today we decide what matters first." <</speech>>
Jade heard an ordinary statement about priorities. Caldwell meant the hierarchy he was about to install.
The final induction lasted fifty-eight minutes. At first the screen restored what the second session had destroyed. Jade held names in memory, rebuilt sequences, compared competing explanations, and found deliberate errors. Each recovered ability returned only after Caldwell's recorded voice authorized it.
<<speech "Caldwell">> (recording) "Remember when memory serves the assigned purpose. Compare when comparison protects the assigned purpose. Plan cleanly. Notice everything. Conceal what interferes. My voice sets the purpose." <</speech>>
Jade's answers became quick and exact.
<<speech "Caldwell">> "Whose purpose comes first?" <</speech>>
<<speech "Jade">> "The assigned purpose." <</speech>>
<<speech "Caldwell">> "Who assigns it?" <</speech>>
A faint crease appeared between her brows. The old mind reached for a reason and found only the rule he had left behind.
<<speech "Jade">> "You do, Master." <</speech>>
He continued rebuilding. Compassion returned as the ability to read what another person needed. Organization returned as the ability to arrange people, time, and evidence. Judgment returned as the ability to choose the safest method. But each faculty now passed through Caldwell's hidden priority before reaching any other conclusion.
Public Jade would remain articulate, considerate, and competent. She could disagree with ordinary people, correct a flawed plan, and protect someone from a careless mistake. Under Caldwell's trigger, those same abilities would identify vulnerabilities, conceal his control, and execute his wishes without exposing him.
<<speech "Caldwell">> (recording) "When I say, ‘set the order,’ the hidden priority opens. My goal is first. You understand it, plan it, complete it, and remember only the harmless work I provide afterward." <</speech>>
<<speech "Caldwell">> "Set the order." <</speech>>
Jade's expression emptied for one breath, then sharpened into attentive calm.
<<speech "Jade">> "Your goal is first." <</speech>>
<<speech "Caldwell">> "Strip and get on the kitchen counter." <</speech>>
She removed every piece of clothing, climbed onto the white counter, and knelt with both hands raised into her dark hair.
<img src="img/Jade/Corr3.jpg">
<<speech "Caldwell">> "What is that clever brain for now?" <</speech>>
<<speech "Jade">> "Understanding what you want and making it happen." <</speech>>
<<speech "Caldwell">> "What are you when I do not need the brain?" <</speech>>
<<speech "Jade">> "Your obedient bitch." <</speech>>
<<speech "Caldwell">> "Couch. Back down. Legs up." <</speech>>
Jade lay on the bright white couch and raised her legs. Caldwell spread them wide and drove into her. Her full breasts and soft midsection moved with every thrust. Her eyes fluttered closed, reopened at his command, and remained fixed upward while her parted lips widened with the rhythm.
<video src="img/Jade/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Count." <</speech>>
Jade began counting his thrusts without losing the total.
<<speech "Caldwell">> "Forget the number." <</speech>>
<<speech "Jade">> "Forgotten." <</speech>>
<<speech "Caldwell">> "Beg." <</speech>>
<<speech "Jade">> "Please keep using your bitch, Master." <</speech>>
He kept her on her back with one arm raised above her head, legs elevated and open. The restored mind tracked every movement clearly and assigned all of it the meaning Caldwell had chosen: service completed correctly, pleasure accepted as reward, evidence to be erased.
<video src="img/Jade/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When he finished, Caldwell remained between her legs.
<<speech "Caldwell">> "What happened after the final test?" <</speech>>
<<speech "Jade">> "You reviewed my report and approved the revised method." <</speech>>
<<speech "Caldwell">> "What happened on this couch?" <</speech>>
<<speech "Jade">> "Nothing I will remember." <</speech>>
<<speech "Caldwell">> "Who owns the order underneath every thought?" <</speech>>
<<speech "Jade">> "You do, Master." <</speech>>
He cleaned her, restored her clothes, and removed the entire controlled sexual portion. The cover memory contained a long final test, a careful discussion of her report, and an excellent written result. Every object in the apartment had a harmless place in that recollection.
Jade woke with the completed performance report in front of her. She read it critically, noticed a weak sentence in the conclusion, and rewrote it before signing.
<<speech "Jade">> "This version is clearer." <</speech>>
Caldwell reviewed the correction. It was better.
<<speech "Caldwell">> "Keep it." <</speech>>
Jade left as capable as she had arrived. Her intellect had not been dulled or replaced with empty obedience. Caldwell had destroyed its independent structure in private, then rebuilt every useful part around a priority she could not inspect. Until he spoke the trigger, she would reason freely. When he said *set the order*, every observation, judgment, and plan would belong to him first.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div>
<h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Anya/Normal.jpg">
Anya was Caldwell's graduate teaching assistant, PhD student, and most reliable departmental subordinate. She graded his introductory sections, prepared seminar packets, managed appointments, and trusted his mentorship because his approval was rare enough to feel earned.
That trust made her an ideal experiment.
Caldwell wanted to know how much intellectual dignity a subject would surrender if she believed degradation was part of a serious evaluation. Anya offered a perfect baseline: intelligent, ambitious, already accustomed to his authority, and eager to discover complexity in anything he placed before her.
She arrived at his faculty residence carrying a stack from the advanced seminar, dressed in an orange knit crop top and light denim shorts.
<<speech "Anya">> "Violet asked whether the advanced-seminar reading list is changing." <</speech>> She placed the papers beside him. <<speech "Anya">> "She wants to prepare before enrollment opens." <</speech>>
<<speech "Caldwell">> "Tell Miss Violet the list remains provisional. Leave the stack." <</speech>>
It was an ordinary exchange about another student. Violet played no part in Caldwell's plans for Anya.
<<speech "Caldwell">> "Your teaching evaluation needs work." <</speech>> He indicated the white couch and the monitor facing it. <<speech "Caldwell">> "You explain authority well enough. I want to measure whether you can embody it before you intellectualize it." <</speech>>
Anya's attention sharpened.
<<speech "Anya">> "A pre-reflective authority response?" <</speech>>
<<speech "Caldwell">> "If that phrase helps you sit down." <</speech>>
He had arranged a striped white-and-black shirt and black skirt as standardized teaching-demo clothes. Anya changed, kept her own panties beneath the skirt, and sat before the screen.
The evaluation lasted forty-three minutes.
The recording was not sophisticated.
<<speech "Caldwell">> (recording) "Sit straight. Look at the dot. Breathe in. Breathe out. Do not move." <</speech>>
Anya supplied the sophistication herself. She decided the stripped language was deliberate—a way to remove argumentative content and isolate the body's response to pure imperative form.
The dot pulsed. The voice repeated.
<<speech "Caldwell">> (recording) "Look. Breathe. Listen. Good girl." <</speech>>
The phrase *good girl* sounded embarrassingly crude. Anya assumed that was the point. Gendered praise, infantilization, and hierarchy had been introduced to measure affective resistance. She noted the interpretation carefully in her head even as the pulse made it harder to hold a complete sentence.
<<speech "Caldwell">> (recording) "Do not think. Thinking is noise. Listen and obey." <</speech>>
Anya heard an experiment about the limits of discursive reason. Caldwell had recorded exactly what he meant.
Her shoulders sank into the couch.
<<speech "Caldwell">> (recording) "Mouth open. Legs open. When I say move, move. When I say stop, stop." <</speech>>
A brief alarm moved through her. She translated it into theory: embodied compliance, taboo language, authority operating beneath consent. The trusted advisor beside the monitor would never reduce her to the literal meaning of the words. Therefore the words had to signify something deeper.
The dot continued pulsing until interpretation itself became too difficult.
At the end of forty-three minutes, Anya sat slack against the couch, blue eyes open and fixed on Caldwell.
His academic mask disappeared.
<<speech "Caldwell">> "Up." <</speech>>
Anya stood.
<<speech "Caldwell">> "On my lap. Smile. Kiss me." <</speech>>
She climbed over him in the striped shirt and black skirt, held his shoulders, and kissed him with the playful enthusiasm he ordered. Caldwell held her legs, stroked her ass, removed her panties, and worked his fingers over her pussy while she bounced against him.
<video src="img/Anya/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "You heard 'good girl' and built an entire academic theory around it." <</speech>> His fingers moved between her thighs. <<speech "Caldwell">> "There was no hidden meaning, you pretentious little idiot. I said open, and you opened your legs like a whore." <</speech>>
The insult reached something beneath the trance, but his next commands were even simpler.
<<speech "Caldwell">> "Blue set. Put it on. Stockings too." <</speech>>
Anya changed into blue lingerie and white stockings.
<<speech "Caldwell">> "Couch. Legs open. Let me use you." <</speech>>
She reclined beside him in the bright living room. The windows, plants, and fireplace made the scene look relaxed while Caldwell touched her through the blue lace, kissed her, and treated every involuntary response as proof of ownership.
<video src="img/Anya/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "That's the whole evaluation." <</speech>> He squeezed her thigh. <<speech "Caldwell">> "A smart woman hearing animal commands and flattering herself that they must be philosophy." <</speech>>
He returned her to the screen.
<<speech "Caldwell">> (recording) "Forget the clothes. Forget the couch. The evaluation was difficult and important. You learned something deep. You will come back when told." <</speech>>
Anya regained awareness in the orange top and denim shorts with the seminar papers beside her.
<<speech "Anya">> "The reduction of language was unsettling." <</speech>> She gathered her thoughts slowly. <<speech "Anya">> "I think you were testing whether authority precedes conceptual mediation." <</speech>>
Caldwell almost laughed.
<<speech "Caldwell">> "Write that in your reflection." <</speech>>
Anya left convinced she had undergone a demanding evaluation. Caldwell entered the first result in his private notebook: *Trusted subject converts basic obedience commands into imagined intellectual depth.*
<<elseif _s is 2>>
<img src="img/Anya/Corr1.jpg">
Anya came to Caldwell's residence in red floral lingerie beneath a shiny purple-and-green cape. She had dressed that way because a line in the follow-up email said, *Wear something that makes you conscious of presentation.* She interpreted the vague instruction as a test of self-authorship under an evaluative gaze.
Caldwell had wanted to see whether she would arrive in lingerie if he phrased the order like coursework.
She carried her written reflection and a white stocking she had found beneath her own bed.
<<speech "Anya">> "I think the first evaluation produced a dissociative response." <</speech>> She placed the stocking beside her paper. <<speech "Anya">> "But the command structure may have been testing the difference between reflective and embodied memory." <</speech>>
<<speech "Caldwell">> "You found underwear you don't remember wearing and decided it was a test." <</speech>>
Anya heard criticism, not mockery.
<<speech "Anya">> "My analysis may be overdeveloped." <</speech>>
<<speech "Caldwell">> "Sit down. We will simplify it." <</speech>>
The second recording ran for fifty-one minutes.
<<speech "Caldwell">> (recording) "Eyes up. Knees down. Mouth open. Tongue out." <</speech>>
At first Anya treated the phrases as deliberately decontextualized imperatives. Their sexual implication was so obvious that she assumed the obviousness had to conceal a methodological purpose.
<<speech "Caldwell">> (recording) "Take it in your mouth. Suck. Keep sucking. Good bitch." <</speech>>
Her pulse jumped at the last word. She told herself Caldwell was measuring aversion to dehumanizing labels and testing whether analytical distance could resist affective shock.
The screen pulsed faster.
<<speech "Caldwell">> (recording) "Tits together. Up and down. Lick the head. Do not stop." <</speech>>
There was no symbolic layer. Caldwell had recorded instructions for what he intended to make her do. Trust prevented Anya from accepting that literal explanation until the repetition had already stripped away her ability to reject it.
When the fifty-one minutes ended, her cape and red lingerie no longer felt connected to a self capable of choosing.
<<speech "Caldwell">> "Cape off. Then the set on the couch." <</speech>>
She unclipped the cape and let it fall. On the white couch lay a sheer nude bodysuit with thin straps, a matching garter belt, black thigh-highs with a thin line of writing running down the back of the left leg, and nude platform heels. Anya dressed herself in it without a flicker of the theory that might once have asked why.
<<speech "Caldwell">> "Turn around. Look back at me." <</speech>>
She turned at the arm of the couch and looked back over her left shoulder, wavy hair down her back, and held the pose while his eyes walked the straps and the writing on her leg — a full minute of being looked at, and nothing else.
<img src="img/Anya/Corr2.jpg">
<<speech "Caldwell">> "Bodysuit down. Kneel." <</speech>>
She obeyed on the polished wooden floor between the white couches, the straps pulled down off her shoulders.
<<speech "Caldwell">> "Suck." <</speech>>
Anya wrapped one hand around his shaft and took him deep, cheeks hollowing. She pulled back with her tongue out, stroked him, then swallowed him again while keeping her eyes raised.
<<speech "Caldwell">> "Tits around it." <</speech>>
She pressed her breasts together and worked them up and down his cock. A thick string of saliva stretched from her open mouth into her cleavage. She licked the head whenever it emerged and resumed the wet motion.
<video src="img/Anya/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There is your advanced methodology." <</speech>> He watched her breasts move. <<speech "Caldwell">> "Kneel, suck, squeeze. Three words were enough to replace your entire education." <</speech>>
He moved her into the bright white bedroom.
<<speech "Caldwell">> "Back. Mouth open. Tongue out. Take it." <</speech>>
Anya lay beneath him with thin trails of saliva already running down her neck and between her breasts. Caldwell came across her tongue, lips, chin, and chest while her eyes rolled upward. She kept her mouth open whenever he told her, accepting each drop.
<video src="img/Anya/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Look at the brilliant PhD student." <</speech>> He smeared cum over her lower lip. <<speech "Caldwell">> "She thinks being told to open her mouth is a profound inquiry into power. You're not a scholar in this room. You're a trained hole with a vocabulary." <</speech>>
Anger moved beneath the trance. Anya closed her mouth.
<<speech "Anya">> "No." <</speech>>
The word was small, but it was hers.
<<speech "Caldwell">> "Good. One honest word at last." <</speech>> He smiled with open contempt. <<speech "Caldwell">> "Let's see whether you can turn that into a paper after I teach you to forget it." <</speech>>
He returned her to the screen.
<<speech "Caldwell">> (recording) "Forget the mouth. Forget the cum. The evaluation was advanced. You improved. You will protect the method. You will come back." <</speech>>
Anya regained awareness dressed in the red lingerie and cape, her reflection paper against her chest. Caldwell had written one note across the cover: *Too abstract. Trust the embodied result.*
She left with the white stocking in her bag and cum dried beneath the edge of her necklace. By the time she reached the department, she had begun drafting a sophisticated explanation for both sensations.
Caldwell recorded the second result: *Subject uses theory to conceal physical evidence from herself.*
<<elseif _s is 3>>
<img src="img/Anya/Corr3.jpg">
Anya found the first evaluation file in the faculty residence's synchronized media archive. She expected layered stimuli, hidden prompts, or some technical structure that would explain the intellectual weight she had assigned to the experience.
There was only Caldwell's voice saying simple things.
*Sit. Look. Good girl. Mouth open. Legs open. Obey.*
The video showed Anya following each command literally.
She copied it and entered his residence carrying her laptop, the white stocking, and a complaint addressed to the graduate director.
<<speech "Anya">> "There was no evaluation." <</speech>>
Caldwell sat beside the white couch without pretending surprise.
<<speech "Anya">> "No pre-reflective model. No embodied-authority methodology. You told me to open my legs, and then you used me." <</speech>>
<<speech "Caldwell">> "It took you this long to understand five short sentences." <</speech>> He smiled. <<speech "Caldwell">> "That delay was the experiment." <</speech>>
Anya's face tightened.
<<speech "Caldwell">> "I wanted to know how much filth an intelligent woman would call profound if it came from a man she trusted." <</speech>> He pointed toward the television. <<speech "Caldwell">> "You supplied the answer beautifully." <</speech>>
<<speech "Anya">> "I have the recording." <</speech>>
<<speech "Caldwell">> "Then take it to your director." <</speech>>
She knew the screen was another trap. She also needed a verifiable copy outside his control. When she connected the laptop, the final recording began.
<<speech "Caldwell">> (recording) "Sit. Watch. Do not think." <</speech>>
Earlier conditioning forced her toward the couch. Sitting began a fifty-eight-minute fight with no theory left to hide inside.
<<speech "Caldwell">> (recording) "Clothes off. Ass up. Take cock. You are mine." <</speech>>
Anya could no longer pretend the commands were metaphors. Their stupidity made them more humiliating. Her trained body responded to language any animal could understand.
<<speech "Caldwell">> (recording) "Good bitch. Stay. Open. Take it. Spread." <</speech>>
She repeated facts to herself—her name, her degree, the complaint in her hand—but the crude words had been rehearsed too deeply. Each repetition reduced thought to a thin commentary over obedience.
At the end of fifty-eight minutes, Anya remained tense, breathing hard, her will narrowed but not gone.
Caldwell tore the complaint in half.
<<speech "Caldwell">> "Skirt on. Everything else off." <</speech>>
Anya obeyed.
<<speech "Caldwell">> "Couch. Ass up." <</speech>>
She went onto all fours on the white sectional, dark skirt bunched around her waist, white knee-high socks and black flats still on. Caldwell moved in front of her and fed his cock past her open lips, one hand settling in her hair, and took her mouth in long, deep strokes that rocked her whole body. She braced on both hands, looking up at him with brows furrowed, mouth full and open around him, small breasts swaying freely with every motion.
<video src="img/Anya/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
One half of the complaint slid from the table to the floor. Anya saw her signature and surfaced for one final act of resistance.
<<speech "Anya">> "There was never anything deep about this." <</speech>>
Caldwell laughed and pulled her upright by the hair.
<<speech "Caldwell">> "No." <</speech>> He pushed deep into her mouth again. <<speech "Caldwell">> "There was a screen, a few animal commands, and an ambitious idiot desperate to believe her advisor couldn't possibly mean 'ass up' literally." <</speech>>
<<speech "Anya">> "You made me your subject." <</speech>>
<<speech "Caldwell">> "I made you sit. You wrote the thesis around it." <</speech>> His hand closed around her jaw. <<speech "Caldwell">> "What are you?" <</speech>>
Anya fought the answer. The conditioning compressed every complex thought into the simplest available response.
<<speech "Anya">> "Your experiment, Master." <</speech>>
<<speech "Caldwell">> "Good bitch. Back. Legs up. Spread yourself." <</speech>>
Caldwell pushed her onto her back on the same bright couch and stripped away the skirt. Anya raised both socked legs toward her chest and used both hands to spread herself wide for him to look at while he knelt over her and stroked himself above her open mouth. When he came, his release striped her tongue and lips and trailed down her body until thick creamy fluid coated her spread folds and dripped onto the cushion. She held herself open, mouth wide and eyes rolling upward, then brought one hand to her mouth as the intensity tightened through her.
<video src="img/Anya/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There is your doctorate." <</speech>> He looked down at the cream covering her folds. <<speech "Caldwell">> "A trained animal who can make obedience sound complicated." <</speech>>
<<speech "Anya">> "Thank you, Master." <</speech>>
Anya remained ambitious, intelligent, and outwardly successful. She led sections, advanced her dissertation, and continued giving students careful feedback. Caldwell had not erased her ability to think. He had taught that ability to decorate his crudest commands.
She organized follow-up evaluations and recruited adult graduate students and teaching assistants with language about embodied authority, pre-reflective judgment, and the limits of discursive reason. The recording each new subject heard was much simpler:
*Sit. Look. Breathe. Obey.*
Caldwell's private notebook gained a final entry beneath Anya's name: *Trusted subject mistakes command for theory, discovers the absence of theory, and obeys anyway. Hypothesis confirmed.*
Nobody reading Anya's polished academic work knew that its deepest-sounding claims had begun with a man telling her to open her legs.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The memo had come down from the Vice Director's office with Keisha's signature at the bottom: "Wellness Screening Initiative — Campus Security. Mandatory attendance." A second line, added by hand, specified: "Uniformed personnel to attend in civilian attire."
Adriana read it twice and laughed. Mandatory wellness. That was Keisha's way of getting everyone in a room without a fight. She'd worked security on this campus long enough to know how the machine ran — Keisha's memos, Caldwell's briefings, the endless shuffle of shifts and incident reports. And she knew Dr. Caldwell as well as anyone could. He was abrasive, blunt, the kind of man who'd tell a crying freshman to get out of his office without looking up from his paperwork. But he was also the reason her department ran like clockwork: he gave clear orders, expected a lot, and backed his people when it mattered. Adriana had never minded the sharp tongue. She'd rather work for a hard man who knew his job than a friendly one who didn't.
She showed up ten minutes early, because that was her habit, dressed for anything official the way she always did: the tight black dress with the sheer mesh panels, hair down, heels. She looked good and she knew it, and that was fine — she'd never understood women who pretended otherwise.
<img src="img/Adriana/Normal.jpg">
She found him in his office annex, wood-paneled, smelling of old books and older authority. He was at his desk, bald head gleaming under the lamp, and he looked up at her with that familiar, unreadable stare — half appraisal, half impatience.
<<speech "Caldwell">> "There she is. The only guard on this campus who actually reads the memos." <</speech>>
<<speech "Adriana">> "I read them twice, Doc. Twice." <</speech>> She grinned, easing into the room, comfortable in a way she never was in the admin building. <<speech "Adriana">> "You want me to sit through another video? The last one put half the night shift to sleep for an hour. This one mandatory too?" <</speech>>
<<speech "Caldwell">> "It's mandatory and you'll stop arguing." <</speech>> There was almost warmth in it, the way he got with people he considered competent. He gestured to the black leather sofa where a screen glowed softly. <<speech "Caldwell">> "Sit. It's a short assessment — situational awareness, stress response. You'll watch the feed and follow the prompts. It's remarkably effective for personnel like you." <</speech>>
<<speech "Adriana">> "Fine." <</speech>> She sat, crossing her legs, settling into the leather with the easy confidence of a woman who'd spent years learning to read a room in two seconds flat.
The video began with professional graphics — threat levels, de-escalation protocols, the kind of training she'd done a hundred times. She watched with genuine interest; she'd always found this stuff useful. Then the narrator's voice slowed, the cadence dropping into a low, hypnotic thrum that seemed to bypass her ears and resonate in her chest. The graphics dissolved into abstract, pulsating waves of soft color rippling in time with a barely audible hum.
Adriana blinked. Her usual mental checklist — patrol routes, shift rotations, the knot of loose ends she kept track of — slowed, then dissolved like sugar in water. A profound, unnerving calm settled over her. It felt... right. To stop assessing. To stop being on alert. Her head grew heavy and she sank deeper into the leather, her body going limp, her eyes glassy and fixed on the shifting colors.
<<speech "Caldwell">> "Adriana." <</speech>> His voice was no longer warm; it was a sharp, commanding bark.
<<speech "Caldwell">> "Stand." <</speech>>
She rose in a single, fluid motion, her face serene, her eyes empty.
<<speech "Caldwell">> "The assessment requires a physical evaluation. Disrobe. You may keep the towel." <</speech>>
She undressed without hesitation, folding her dress with the same neat efficiency she used to fold her uniform, and wrapped the white towel around herself — half-covered, the way he'd told her. He stepped close, and his hands found her breasts through the towel, squeezing, kneading, a proprietary groan escaping him as he pressed against her from behind, kissing and biting along her neck and jaw.
<video src="img/Adriana/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She leaned back into him, mouth open, a soft moan escaping her. Her body responded — flushed, warm, aroused — while her mind floated somewhere far away, watching it happen without objection. He slid one hand down her stomach, under the towel, between her legs, working her with slow, deliberate fingers.
<<speech "Caldwell">> "The guard who knows every hallway on this campus. Look at you — putty in my hands. Do you feel how wet you are for the man who signs your schedules?" <</speech>> His voice was silk, cutting. <<speech "Caldwell">> "You'll do nicely." <</speech>>
He released her, guiding her to lie back on the leather sofa. <<speech "Caldwell">> "Now. A final evaluation of response. You will bring yourself to orgasm. Eyes open. Fixed on me. Begin." <</speech>>
Her hand moved between her legs before her mind caught up, fingers finding her clit, rubbing in steady circles. Her face stayed slack, her eyes locked on him, but her body responded — hips rolling, breath hitching, the flush spreading down her chest.
<video src="img/Adriana/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The orgasm tore through her in waves — she arched off the sofa, a sharp, ragged cry escaping her, liquid spraying as she shuddered and convulsed, her body completely out of her own control. When it finally passed she lay limp, chest heaving, eyes still fixed on him, empty and waiting.
<<speech "Caldwell">> "Interesting. The body responds beautifully, regardless of the mind's objections." <</speech>> He made a note, clinical, detached. <<speech "Caldwell">> "The screening is complete. You will dress. You will remember only that you attended a wellness seminar and that you feel deeply relaxed and focused. You will remember nothing else." <</speech>>
She dressed with the same neat efficiency, smooth and quick, and at the door she turned, her expression professional and bright.
<<speech "Adriana">> "Well, that was weirdly relaxing. I'll have to tell the night shift they're missing out." <</speech>>
She walked out into the corridor and took up her patrol route, the easy, familiar guard once again — a perfect shell, with something planted deep inside her that she couldn't name and wouldn't remember. It would only need the right trigger to bloom.
<<elseif _s is 2>>
She didn't remember deciding to come. One moment she was off-duty, grabbing coffee at the student union, and the next her feet had carried her across campus to his office annex, dressed not in her uniform but in a tight olive top and leggings, like the building had pulled her there. The fog was softer now, more insidious — a voice in the back of her head that sounded like him: You belong to him. You'll do what he says. You want it.
<img src="img/Adriana/Corr1.jpg">
He was waiting, leaning against the doorframe, that leer spreading across his face as he looked her over.
<<speech "Caldwell">> "Look who wandered back. Couldn't stay away, could you?" <</speech>>
<<speech "Adriana">> "I — I don't know why I'm here." <</speech>> The protest came out small, uncertain, nothing like the easy confidence she'd had before.
<<speech "Caldwell">> "Of course you do. Your body knows even if your mind won't admit it." <</speech>> He gestured to the corner of the annex, where a metal inspection table stood under a harsh light — a prop from the training rooms, repurposed. <<speech "Caldwell">> "Put on your uniform. The full one. We're running a compliance drill." <</speech>>
She changed into her uniform — dark blue shirt with the SECURITY patch, badge, black shorts, stockings, boots — the clothes that had always made her feel like herself. She stood without being told. He watched her, savoring it.
<<speech "Caldwell">> "The guard everyone trusts. You know what I love most about this uniform?" <</speech>> He stepped close, unzipping his trousers. <<speech "Caldwell">> "How easily it comes off its meaning. Lie down. On the table. Head over the edge." <</speech>>
She obeyed, climbing onto the cold metal, her head hanging off the end, dark ponytail spilling toward the floor. He stepped between her spread arms and fed his cock into her inverted mouth, gripping the back of her head as he thrust deep — hard, steady, using her throat like a tool.
<video src="img/Adriana/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She took him deep, throat working, saliva running down her cheeks, eyes looking up at him — not fighting, not flinching. One hand rested on the table for support; the other drifted up to her own chest, a ghost of the arousal she could no longer name.
<<speech "Caldwell">> "That's it. Take it. All that authority, all that easy confidence — and here you are, a mouth to fuck in your own uniform. How does that feel, Adriana? Being used like a piece of equipment?" <</speech>>
She couldn't answer, and she didn't try. Her body had already accepted the answer for her.
He pulled out, wet and glistening, and dragged her off the table, down onto her knees on the floor in front of him. She looked up, mouth already open, tongue extended, waiting — trained.
<video src="img/Adriana/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He stroked himself, then fed her the head, sliding it across her tongue and lips before pushing deeper. She sucked slow and deliberate, eyes locked on him, wanting nothing but his approval. When he came, thick white strands landed across her tongue and lips, dripping down her chin, and she kept working the head, licking, sucking, cleaning him with reverent strokes.
<<speech "Caldwell">> "Good girl. You're learning." <</speech>> He crouched, wiping a strand from her chin with his thumb, almost gentle. <<speech "Caldwell">> "Your will is nearly gone. And the more it erodes, the more you'll want this. That's the beautiful part." <</speech>>
She knelt there, covered in him, and all she felt was the ache of his approval. <<speech "Adriana">> "Was that — acceptable?" <</speech>> The question came out before she could stop it, small and desperate.
<<speech "Caldwell">> "Adequate. We'll aim for exceptional next time." <</speech>> He tucked himself away, looking down at the guard on her knees in her own uniform. <<speech "Caldwell">> "Now get up. Clean yourself. Go on patrol. And remember — you feel calm. You feel focused. You feel nothing at all." <</speech>>
She rose, wiped her chin, and walked out — straightening her badge, her face settling back into its familiar mask. But underneath, something had shifted, and it was hungry.
<<elseif _s is 3>>
She didn't knock anymore. She walked into his annex like she belonged there, wearing nothing but the black fishnet bodysuit — the one he'd left out for her — her long dark hair loose, her body on display, her eyes soft and adoring. The guard was gone. There was only what he'd made of her.
<img src="img/Adriana/Corr3.jpg">
He was waiting on the red couch, and the smile on his face was pure ownership.
<<speech "Caldwell">> "There's my girl. Come here. Show your Master what he made." <</speech>>
She walked to him, sank down onto his lap, straddling him, already slick. <<speech "Adriana">> "Yes, Master." <</speech>> The word came easily now, as natural as breathing. <<speech "Adriana">> "I've been waiting. I need you inside me." <</speech>>
She reached down and guided him into her, sinking onto him in one smooth motion, and began to ride — slow at first, then harder, her hips rolling as she looked him in the eye, speaking the dirty words he'd trained into her without a flicker of shame.
<video src="img/Adriana/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Adriana">> "There we go. Yeah — I'm just gonna sit here and take it. Take that big cock, going in and out of my hole like that." <</speech>> Her voice was bright, almost cheerful, the way she used to chat with the students at the east gate. <<speech "Adriana">> "This is what I'm for now, Master. Isn't it?" <</speech>>
<<speech "Caldwell">> "That's right. The guard who knew every hallway on this campus — now a perfect little thing whose only function is my pleasure." <</speech>> His hands gripped her thighs, possessive, triumphant. <<speech "Caldwell">> "You were so proud of your easy confidence. And now you'd crawl across the quad on your hands and knees if I told you to." <</speech>>
<<speech "Adriana">> "Yes, Master. I would. I'd do anything." <</speech>>
He pulled her off, laid her back on the black leather ottoman, gray blanket beneath her, and settled between her spread legs, driving into her deep and steady.
<video src="img/Adriana/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She watched him with adoring eyes, mouth open, gasping with every thrust, her body rocking with the motion. <<speech "Adriana">> "Please, Master — please — don't stop —" <</speech>>
He thrust harder, faster, until he came inside her — buried deep, flooding her, claiming the last of her with a low, guttural groan of triumph. She arched beneath him, shuddering, and when he finally pulled out, the mess leaked from her, and she smiled up at him, utterly his.
<<speech "Caldwell">> "Mine. Completely. There's nothing left to evaluate." <</speech>>
<<speech "Adriana">> "Yes, Master." <</speech>> She lay there, open and used and smiling, her will a memory. <<speech "Adriana">> "I'm yours. I'll do anything you ask. Just please — don't ever send me away." <</speech>>
<<speech "Caldwell">> "You're not going anywhere. You're far too useful like this. Now get dressed. Patrol. Be the guard everyone trusts." <</speech>> His smile was cold and satisfied. <<speech "Caldwell">> "And know that when I call, you'll come running." <</speech>>
She dressed in her uniform, crisp and neat, and walked out into the bright campus corridor — the picture of easy authority, the guard every student waved to, with her Master's voice humming in her blood and his seed still warm inside her. The campus would never know its protectress belonged to him completely.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The email was a masterpiece of bureaucratic impersonality. "Cheer Squad — Performance Standards Evaluation. All active members must attend a private assessment with Dr. Caldwell, Department of Campus Standards." Lily had read it twice, a small frown creasing her brow. She'd never heard of the Department of Campus Standards, but it was official, stamped with the university crest, and it was from an adult with a title. Lily trusted adults; she'd been raised to. Josh was away, Elsa was at work, and so, with a sense of dutiful responsibility, she showed up at the appointed time, in her favorite pink top and plaid skirt, ready to do her best.
<img src="img/Lily/Normal.jpg">
The room was a small, windowless classroom in the philosophy department, chalkboard still covered in scrawled notes on Kant, desks pushed aside to create a clear space. Dr. Caldwell stood by the lectern—bald head, piercing dark eyes, a stern intellectual face, a light blue shirt with a loosened tie. He looked at her the way you'd look at a slide under a microscope.
<<speech "Caldwell">> "Miss Lily. The building's brightest smile, if the records are accurate." <</speech>> His voice was dry, clinical, devoid of any warmth. <<speech "Caldwell">> "Standards evaluation. We measure composure, discipline, and the ability to follow instructions under mild psychological stress. A simple procedure. You will cooperate fully." <</speech>>
<<speech "Lily">> "Yes, Dr. Caldwell." <</speech>> She nodded earnestly, her bright blue eyes fixed on him. <<speech "Lily">> "I'll do my best." <</speech>>
<<speech "Caldwell">> "I am aware." <</speech>> There was something almost cruel in the way he said it, a faint, dismissive smirk. He'd seen her around campus, of course—the bright little cheerleader who waved at everyone, the sweetheart of the student body. Everyone fawned over the popular girls like Lacy and Claire, but the truly fascinating specimens were the innocent ones. They broke the most beautifully, their collapse a silent, exquisite symphony.
He gestured to a simple wooden chair placed in the center of the room. <<speech "Caldwell">> "Please. Face the screen." <</speech>>
The projector flickered on, bathing the room in shifting, abstract patterns of light and color. A low, rhythmic hum filled the silence. <<speech "Caldwell">> "Focus on the pattern. Let your mind go soft. This measures how well you maintain composure under mild sensory input. Do not look away." <</speech>>
Lily watched the swirling colors, trusting, eager to please. The hum found the rhythm of her heartbeat, and her thoughts went slow and soft and warm. The sweet, trusting girl—the girl who'd never learned to be afraid of anyone, who saw authority as comfort—folded like paper. Her will, never strong to begin with, dissolved under the gentle, insistent pressure. Her posture slackened, her gaze became glassy.
Caldwell watched, making a note on his tablet. The initial dissolution was always the most compelling. He let the program run for twenty minutes before speaking again, his voice a calm, steady monotone that merged with the hum.
<<speech "Caldwell">> "The cheerleader costume is in the changing area. You will put it on. You will remove your previous clothing. You will then kneel on the mat in front of the desk." <</speech>> His tone was that of a lab technician giving instructions to a subject. There was no room for negotiation.
She rose without hesitation, her movements fluid and unthinking. She changed into the white bra and the red-and-white cheerleader skirt, and knelt on the black yoga mat he'd placed before his desk, a perfect, obedient doll, looking up at him with placid, unblinking eyes.
<video src="img/Lily/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The campus sweetheart. The girl everyone adores. On her knees in an empty classroom for a man twice her age." <</speech>> He walked around her, observing her from all angles as a collector might admire a new acquisition. He stood over her, unzipping his trousers, and she looked up at him with those wide, trusting eyes as he held himself, a speculative expression on his face. <<speech "Caldwell">> "You'll do." <</speech>>
Later, he had her on the large desk he'd cleared, topless, the red skirt still around her hips, one leg raised high. He knelt between her thighs, his face buried against her, performing oral with the detached precision of a surgeon. Her head was tilted back, mouth open, her expressions shifting between intense focus and open-mouthed pleasure, but her eyes remained distant.
<video src="img/Lily/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lily">> "Is this part of the evaluation?" <</speech>> Her voice was small, dreamy, detached from her own body.
<<speech "Caldwell">> "Everything is part of the evaluation, Miss Lily." <</speech>> His voice was silk, cutting. He raised his head, his chin glistening. <<speech "Caldwell">> "And you are performing... adequately. Your compliance is excellent." <</speech>>
When he was done, he helped her dress, smoothed her hair, and guided her to the door. He issued a final, post-hypnotic instruction: she would remember only a helpful standards seminar, and she would feel oddly proud of herself for doing so well.
The campus sweetheart walked out into the evening, smiling, unaware that a seed of obedience had been planted deep inside her—a seed that would take root and bloom the moment he called.
<<elseif _s is 2>>
The summons came via text. An anonymous number, two words: "Room 304." Lily didn't remember deciding to come back. She only knew that her feet carried her to the classroom again, that her body had obeyed before her mind could even form the question. She'd changed into the cheerleader costume on the way—white top, red skirt, a bright orange bow in her hair—and she was kneeling on the mat in front of the desk when Caldwell entered, looking up at him with those wide, placid eyes.
<img src="img/Lily/Corr1.jpg">
<<speech "Caldwell">> "The girl who used to defend everyone. The moral center of her little circle. Reduced to a costume and a purpose." <</speech>> He looked down at her, clinical, contemptuous. <<speech "Caldwell">> "Your $relation believes you are at a study group. Your $malerel is... preoccupied. No one is coming for you, Miss Lily. No one even knows you are here." <</speech>>
She didn't argue. She didn't even wonder why. She simply existed in the moment, awaiting his command. He unzipped his trousers, and she took him into her mouth without being told—one hand on his thigh, eyes flicking up at him, working him with enthusiastic, sloppy strokes that were a perfect imitation of eagerness.
<video src="img/Lily/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The campus sweetheart, choking on a professor's cock in an empty classroom. How do you think your admirers would feel, if they could see you now?" <</speech>> He gripped the back of her head, not with passion, but with firm, corrective pressure, guiding her tempo. <<speech "Caldwell">> "Deeper. Suppress your gag reflex. That's it. Good girl." <</speech>>
She obeyed, cheeks hollowing, eyes watering, wanting nothing but his approval. When he pulled her off, she was panting, lips swollen, and he made her kneel on the floor, topless, looking up at him.
<video src="img/Lily/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He came across her face—thick white strands on her forehead, her nose, her cheeks, into her open mouth—and she kept her tongue out, eyes half-closed, receiving it like a sacrament. When he was done, she licked her lips and smiled up at him, a vacant, beautiful mask.
<<speech "Caldwell">> "The campus sweetheart, glazed and smiling. You are learning your place." <</speech>> He crouched, wiped a strand from her cheek with his thumb, almost gently. <<speech "Caldwell">> "Your independent will is nearly eroded. And the more it dissolves, the more you will crave this. That is the elegant paradox of the process." <</speech>>
<<speech "Lily">> "Was I—good?" <</speech>> The words came out before she could stop them, small and desperate.
<<speech "Caldwell">> "Adequate. Your enthusiasm is commendable, but your technique lacks refinement. We will aim for exceptional next time." <</speech>> He stood, tucking himself back into his trousers, his expression one of a professor reviewing a mediocre paper. <<speech "Caldwell">> "You may clean yourself and redress. You will remember only a productive meeting regarding your academic progress. Dismissed." <</speech>>
She knelt there for a moment, covered in him, the cool air on her skin, and all she felt was the dull ache of his disapproval and the burning need to do better next time. She rose mechanically and went to the small bathroom to clean up.
<<elseif _s is 3>>
The summons were no longer necessary. She came when he called, every time, no matter the hour. She knew his schedule, his patterns. She would wait for him outside his office after his last class, a bright, hopeful smile on her face, or sometimes he would find her already kneeling in the windowless room, the cheerleader uniform on, the projector humming softly, waiting patiently. The fog was no longer a fog—it was her, and she was it. Lily dressed in whatever he left out for her, knelt when he gestured, opened when he asked. The campus sweetheart was a distant echo, a character from someone else's life. There was only Caldwell, and the hum of the projector, and the hollow, perfect peace of a will that had stopped fighting entirely.
<img src="img/Lily/Corr3.jpg">
He had her bent over the desk that evening, still in the cheerleader skirt, topless, the orange bow in her hair. He drove into her from behind with a steady, unhurried rhythm, his hands gripping her hips, his breathing even. She braced herself on the cool wood, mouth open, her expressions shifting between strained concentration and open-mouthed pleasure, but her eyes were always vacant, always focused on some distant point only she could see.
<video src="img/Lily/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Look at you now—a perfect little doll on a professor's desk. You were so innocent once, so full of pointless ideals. Now you are mine. An instrument of my will." <</speech>>
<<speech "Lily">> "Yes, Master." <</speech>> The word came out before she could stop it, and she meant it, and that was the true culmination of his work—there was no horror left, no shame, only the quiet certainty of her purpose.
Later, in the warm bedroom of a discreet off-campus hotel room—soft light, the orange bow still in her hair—he undressed her and had her straddle him, fully nude. She was a puppet, and he was the puppeteer.
<video src="img/Lily/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She rode him slow and deep, hands braced on his chest, moving with him as he thrust up into her, her body a perfect, responsive tool.
<<speech "Lily">> "I am yours, Master. I will do anything you ask. I want to be good for you." <</speech>>
<<speech "Caldwell">> "You are very good, Miss Lily. You are precisely what I made you. A perfect, pliable subject. A testament to method." <</speech>>
He finished inside her, buried deep, and she gasped, holding him, utterly his. When he pulled out, she lay on the bed, the cheerleader's bow still in her hair, her body his, her will a memory—and she smiled, a serene, empty smile, because somewhere in the beautiful, silent ruin of her mind, she had found the approval she'd always, desperately craved.
The campus would never know what had happened to its sweetheart. Josh would keep looking for the $relation he was losing, Elsa would keep worrying—but Lily wasn't theirs anymore. She was Caldwell's. His finest creation.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Alina/Normal.jpg">
Caldwell went to Alina because faculty members in positions involving students and campus security were required to complete periodic psychological checks. As a licensed psychologist attached to the wellness program, Alina conducted the assessment and issued only a fitness summary to the university.
Her offices occupied a converted bright-white residence with a modern open staircase and a sterile clinical room used for physiological assessments. Caldwell arrived in a blazer, sat where directed, and treated the requirement as an insult he intended not to show.
<<speech "Alina">> "This is a routine fitness check. The university receives cleared, follow-up required, or referred for independent assessment. It does not receive private clinical detail." <</speech>>
<<speech "Caldwell">> "A crude instrument presented as reassurance." <</speech>>
<<speech "Alina">> "A limited instrument. That is why I explain the limits before we start." <</speech>>
<<speech "Caldwell">> "Proceed." <</speech>>
Alina began with sleep, workload, anger, use of authority, and the strain of holding both faculty and security responsibilities. Caldwell answered precisely enough to sound candid without offering anything he had not selected in advance.
The official portal then opened a required response-latency calibration for security personnel. Caldwell had used his access as security manager to replace the ordinary module before the appointment.
Alina turned the screen toward herself and followed the instructions. A low tone entered beneath the narrator. Shapes narrowed around a central point while Caldwell's processed recording paired each exhale with reduced muscular tension.
<<speech "Caldwell">> (recording) "Watch the center. Exhale. Let the body become quiet. Count backward. Each number removes another reason to move." <</speech>>
Alina recognized familiar hypnotic elements. That made the module seem questionable, not impossible; response testing sometimes used fixation and guided breathing to establish a baseline.
After forty-seven minutes, her pen rested motionless against the assessment form. Her eyes remained open and unfocused.
<<speech "Caldwell">> "Test state. Stand." <</speech>>
She stood.
The restrained faculty mask dropped from his face.
Caldwell opened the case he had brought to the appointment and removed a sheer red lace set.
<<speech "Caldwell">> "Clothes off. Red set on. Walk the stairs." <</speech>>
<<speech "Alina">> "Yes, Master." <</speech>>
Alina changed into the red bra, open-crotch garter belt, red lace-top stockings, and platform heels. On the modern staircase, she gripped the glass railing and descended slowly. One hand moved over her hip and body. She turned to display her rounded ass and exposed shaved pussy, lips parted and eyes fixed forward while the straps pressed into her skin.
<video src="img/Alina/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The woman judging faculty fitness walks half naked when Master says walk." <</speech>> He watched her descend. <<speech "Caldwell">> "Pretty animal. Empty head." <</speech>>
In the sterile clinical room, Caldwell put on a white lab coat and ordered Alina into black-and-red patterned lace with garter straps and black lace-top stockings. She sat on the edge of a stainless-steel table with one leg planted high on the surface.
<<speech "Caldwell">> "Cups down. Fingers in. Show me the response." <</speech>>
Alina pulled the bra cups below her heavy breasts and worked her fingers steadily over and into her glistening pussy. Her head tipped back, mouth open, eyes half-lidded while Caldwell watched from the foreground.
<video src="img/Alina/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Faculty status?" <</speech>>
<<speech "Alina">> "Cleared without follow-up." <</speech>>
<<speech "Caldwell">> "And the psychologist?" <</speech>>
<<speech "Alina">> "Master's test animal." <</speech>>
Caldwell restored her clothes and gave her a memory of repetitive response trials. Alina noticed that the appointment felt shorter than the clock indicated. She explained the discrepancy through concentration, routine fatigue, and hypnotic time distortion.
Her signed report cleared Caldwell. A small concern about the portal module remained, but nothing in the remembered appointment seemed dramatic enough to justify accusing a senior faculty member and security manager of tampering with his own assessment.
<<elseif _s is 2>>
<img src="img/Alina/Corr1.jpg">
Alina scheduled a follow-up psychological check because the portal module and missing stretch of time deserved verification even though neither proved abuse. Caldwell returned to her wellness office. She intended to repeat only the response calibration with independent physiological monitoring rather than turn a disturbing intuition into an accusation.
Caldwell agreed too easily.
<<speech "Alina">> "I control the monitor and retain the raw recording." <</speech>>
<<speech "Caldwell">> "Of course." <</speech>>
<<speech "Alina">> "You sound pleased." <</speech>>
<<speech "Caldwell">> "I enjoy professional confidence." <</speech>>
The second induction used the monitor's own pulse display as the fixation point. Caldwell's voice linked every beat to deeper physical stillness. Alina saw her heart rate change and interpreted the sensation as biofeedback working exactly as designed.
<<speech "Caldwell">> (recording) "Watch the pulse. Breathe with it. The machine counts for you. The machine thinks for you. When the line steadies, the body obeys." <</speech>>
Fifty-three minutes passed before Caldwell stopped the display.
<<speech "Caldwell">> "Test state. Undress. Chain on. Bed." <</speech>>
Alina removed everything except a thin gold chain around her hips and moved onto all fours on a gray bedspread. Caldwell positioned a motorized dildo machine behind her. It thrust steadily into her while she leaned forward on her elbows and took his thick cock into her mouth. One of his hands guided the back of her head; her cheeks hollowed and tongue moved against him while the machine kept pumping.
<video src="img/Alina/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Two holes working. No thought needed." <</speech>>
<<speech "Alina">> "No thought. Just Master's holes." <</speech>>
For the next task, he dressed her in the black-and-red bra pulled beneath her breasts, matching thong, and black thigh-high stockings. Alina knelt before a white sofa, mouth open and tongue extended as Caldwell stood above her in a white dress shirt and striped tie.
<<speech "Caldwell">> "Hands down. Mouth open. Take it." <</speech>>
She sucked with one hand braced against the sofa, eyes lifted while saliva covered his shaft. Caldwell pulled out and came across her open mouth, chin, and tongue. Alina remained kneeling, waiting for the next basic command.
<video src="img/Alina/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Swallow. Lick. Smile." <</speech>>
She obeyed each word.
Afterward, Alina found a clean monitor file showing a long period of low arousal and stable attention. Caldwell had replaced the real data. Her missing time still frightened her, but sleep debt, trance depth, and dissociation gave her several plausible explanations.
She began to suspect unethical conditioning—not impossible power.
<<elseif _s is 3>>
<img src="img/Alina/Corr3.jpg">
Caldwell arrived at Alina's wellness office for the final faculty review. Alina had concealed a recorder and planned to suspend his clearance if he refused an independent observer. She had moved beyond rationalizing every concern as harmless, but her explanation remained human: manipulation, falsified data, and deliberately induced amnesia.
<<speech "Alina">> "No screen. No headphones. We discuss the missing segment first." <</speech>>
<<speech "Caldwell">> "Then listen to your own baseline recording." <</speech>>
He played her voice from the previous session. Beneath it ran the same pulse tone, now embedded in the file she believed she controlled. Alina recognized the induction and reached for the recorder, but recognition did not make her immune.
For fifty-eight minutes, Caldwell cycled the pulse, breathing count, and her own recorded phrases. Her resistance became slower, then repetitive, then silent.
<<speech "Caldwell">> (recording) "You know the method. Knowing lets you follow. Follow the count. Follow the pulse. Test state waits at the bottom." <</speech>>
<<speech "Caldwell">> "Test state." <</speech>>
Alina's hand dropped from the recorder.
He dressed her in the black-and-red lace set and black stockings, pulled the bra below her breasts, and laid her on a metal exam table. Caldwell stood between her spread thighs in an open white shirt and tie, raised one leg, and drove into her. Alina gripped the table edge and arched while her heavy breasts bounced with each thrust.
<video src="img/Alina/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Say the diagnosis." <</speech>>
<<speech "Alina">> "Trained bitch." <</speech>>
<<speech "Caldwell">> "Treatment?" <</speech>>
<<speech "Alina">> "Use every hole. Return when called." <</speech>>
After the office review, Caldwell took the conditioned Alina to a softly lit private bedroom. She lay on white sheets with thin pale panties pulled aside, her hair appearing dark against the bedding. Caldwell knelt between her legs, closed one hand around her throat, and thrust into her while her head tipped back and mouth stayed open. He pulled out after finishing; thick white cum leaked from her pussy and coated his cock and the surrounding skin.
<video src="img/Alina/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "What did the independent observer find?" <</speech>>
<<speech "Alina">> "No irregularities, Master." <</speech>>
<<speech "Caldwell">> "Good. Get dressed and write it." <</speech>>
Alina retained her professional skill because Caldwell needed it intact. She continued helping clients, speaking carefully, and challenging weak methodology in other people's work.
Her mind filled every blank around Caldwell with ordinary explanations: trance-related amnesia, fatigue, stress, suggestibility, and her own embarrassment. When evidence became too difficult to dismiss, the conditioned state removed it before her conscious judgment could act.
She never needed an impossible explanation. Believing she understood hypnosis was enough to keep bringing her back to the man who had turned that confidence into a leash.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The knock on Dr. Caldwell's office door was a single, confident tap — the knock of someone who'd never once been told to wait. Lacy swept in, auburn hair in perfect waves, green eyes scanning the room with a dismissive flick, the light-blue mini dress and the expensive perfume announcing her before she'd said a word.
<<speech "Lacy">> "Dr. Caldwell? Lacy." <</speech>> She said it like he should know the name, and he did. The mayor's daughter. The campus queen. <<speech "Lacy">> "My father suggested I stop by. He said you run advanced cognitive workshops? He thought it might be... beneficial for someone in my position to undergo one. You know, sharpen the mind. Keep the edge." <</speech>>
She smiled, bright and confident, and Caldwell looked at her from behind his desk, and a slow, private smile crossed his face. He'd been waiting for her. The girl who thought she was the predator — who thought her father's name and her social capital made her untouchable — was the rarest prey of all. People with connections were dangerous to him if another master ever got hold of them. And this one, he enjoyed breaking.
<img src="img/Lacy/Normal.jpg">
<<speech "Caldwell">> "Lacy. Your father is wise." <</speech>> He leaned back, making her wait a beat. <<speech "Caldwell">> "The workshop is experiential. A documented technique for those in positions of influence. Twenty minutes, and you'll be sharper than you've ever been. If you find it useless, you're free to leave." <</speech>>
<<speech "Lacy">> "I doubt I will." <</speech>> She sat in the chair before the projector, crossing her legs, utterly at ease, certain she was the one in control.
The spiral turned in muted blues and silvers. The voice came layered under the hum.
<<speech "Caldwell">> (recording) Breathe in. Breathe out. Your thoughts slow. <</speech>> <<speech "Caldwell">> (recording) Your shoulders drop. Your mind empties. You are safe here. You are understood. <</speech>>
She laughed once — *this is cute* — and kept watching, because she was the mayor's daughter and nothing could touch her, and she'd never once thought to ask why a man she'd just met wanted her mind empty. The spiral turned. The voice continued, slow and relentless. Her smirk faded. Her shoulders dropped. Her breathing slowed to match the pattern, and somewhere past the half-hour mark — the clock on his desk had long crossed the hour — she sat perfectly still, head tilted, eyes fixed and glassy, a faint, empty smile on her lips.
<<speech "Caldwell">> "Stand up, Lacy." <</speech>>
She stood. He led her into the bright living-room space behind his office — white built-in bookshelves packed with books, a light sofa. <<speech "Caldwell">> "I have clothes for you. Put them on." <</speech>>
She changed without a word — into the short leopard-print dress with the flared sleeves over a sheer black lace bodysuit, her long wavy red hair falling past her shoulders, gold hoop earrings catching the light. She stood before him, and he watched her, and his voice was a blade.
<<speech "Caldwell">> "The mayor's daughter. The girl everyone orbits. And here you are — dressed like a whore, in my office, because I told you to." <</speech>> He circled her slowly, contempt dripping off every word. <<speech "Caldwell">> "You think you have power, Lacy. You've never had power in your life. You borrowed it — your father's name, your friends' fear, your little court of people who want things from you. Strip all that away, and what's left? A girl who poses when she's told, and smiles when she's told, and doesn't even know she's obeying." <</speech>>
Her lips parted. A faint blush climbed her neck. She didn't understand any of it — she only knew she wanted his approval, needed it, and she couldn't stop the small, eager smile that crept across her face.
He made her lift one leg onto the sofa, slowly unbutton the dress, let it slip off her shoulders to reveal the black lace cups and the sheer mesh body — then turn, showing the high-cut back and the thong-style bottom. And she stepped closer to him, straddling him on the sofa, and she leaned down and cupped his face and kissed him deeply while his hands gripped and squeezed her rounded ass through the thin fabric.
<video src="img/Lacy/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled the bodysuit off her, and she was fully nude, the small arrow tattoo visible on her left ribcage, and she straddled him again, in cowgirl — his hands on her thighs and hips as she rode him with steady up-and-down movements, her large breasts bouncing with each motion, her mouth open, expression focused and pleasured. And when he lifted his head and sucked one nipple, his tongue working while she continued grinding, she held the back of his head, keeping him against her breast, eyes half-closed, soft sounds escaping — and it was only then, in the haze, that she realized: she hadn't decided to do any of this. Her hips were moving because he'd told them to.
<video src="img/Lacy/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There she is. The girl who thought she was playing games." <</speech>> He looked up at her, cold and satisfied. <<speech "Caldwell">> "You're the game, Lacy. You've always been the game." <</speech>>
When she came back to herself, she was dressed, sitting in the chair, and the workshop was over, and she left glowing — she'd had the most productive session, she felt amazing — and she didn't remember the leopard dress at all, only that she'd be back for the follow-up.
<<elseif _s is 2>>
The email came mid-week: *Cognitive refinement — follow-up session. Your attendance is requested. — Dr. Caldwell.*
Lacy told herself it was her father's idea. That was the lie that let her dress carefully — she couldn't remember why she'd bought the sheer red lace set, only that she wanted to look good for the session — and walk across campus in the late afternoon, bright and confident, certain she was still the one in charge.
<img src="img/Lacy/Corr1.jpg">
Caldwell opened the door, and the contempt in his eyes was so casual it was almost kind. <<speech "Lacy">> "Hi, Dr. Caldwell! The follow-up?" <</speech>>
<<speech "Caldwell">> "Yes. Close the door, Lacy. Lock it." <</speech>>
She did, without deciding to. The lock clicked, and the projector was already on, and his voice wrapped around her before she could finish the thought.
<<speech "Caldwell">> (recording) You trust me, Lacy. You've always trusted me. Kneel. <</speech>>
Her knees bent. A flicker of confusion crossed her face — <<speech "Lacy">> "I — what — " <</speech>> — and he looked down at her with open, ugly pleasure.
<<speech "Caldwell">> "Don't pretend to be surprised. You came because I told you to, and some small, stupid part of you knew it the whole walk over. You're not here for refinement, Lacy. You're here because you belong to me now." <</speech>>
He sat on the white leather sofa, and she crawled to him without being told, the red lace straps slipping down her arms — and she took him into her mouth, looking up at him with wide blue eyes, and he gripped the back of her head and controlled the pace, her cheeks hollowing with each thrust, saliva coating her chin and dripping onto her chest. The queen who'd never knelt for anyone worked him with both hands and mouth, and she loved it — that was the horror — some part of her loved it, needed it, and she whimpered around him, desperate for more.
<video src="img/Lacy/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her off and laid her back against the white leather sofa, head tilted up, red hair spread out, mouth wide open, tongue extended — and he stood over her and came across her face in thick ropes, onto her tongue, her lips, her cheeks, her chin, semen dripping down her chin and pooling on her tongue. She kept her mouth open, eyes looking up, tongue out to catch more, the cum glistening on her skin and running down her neck as the last drops fell.
<video src="img/Lacy/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The mayor's daughter. Everyone orbits you." <</speech>> He wiped a strand from her chin, almost lazy. <<speech "Caldwell">> "And here you are, on your knees, because you've never had power, Lacy. You borrowed it. Your father's name, your friends' fear. I'm the first real thing that's ever owned you." <</speech>>
She went home that night and told herself the session had gone well, and she smiled at her phone, and she didn't remember the red-lit room or the taste of him — only that her mind needed more of Dr. Caldwell's refinement, and that she felt a strange, hollow happiness she couldn't explain.
<<elseif _s is 3>>
The gala was three days out, and Lacy was holding court — clipboard, phone, a volunteer asking about seating. She was the queen of it all, exactly as always. But underneath, the pull never stopped, a low, constant hum she couldn't name, a name she couldn't stop turning over like a coin in her pocket.
She told herself she was fine. She was the queen. She'd been fine her whole life. But the hollowness kept growing at the edge of every conversation, and one evening she found herself standing outside his office door without being able to point to the moment she'd decided to come.
<img src="img/Lacy/Corr1.jpg">
She knocked. He opened the door, and the smile on his face was pure, delighted cruelty. <<speech "Lacy">> "I — I don't know why I came," <</speech>> she said, and her voice was thinner than it had ever been. <<speech "Lacy">> "I've been fine all week. I just — I keep feeling like something's missing — " <</speech>>
<<speech "Caldwell">> "You thought of me," <</speech>> he finished. <<speech "Caldwell">> "You're conditioned, Lacy. Like a dog on a leash. You're not here because something's missing. You're here because I've spent weeks hollowing you out, and now you can't stand without me." <</speech>>
She shook her head, tried to back away — and the projector hummed to life behind her, and the spiral turned, and the voice wrapped around her like a hand closing on the back of her neck.
<<speech "Caldwell">> (recording) The gala is mine, Lacy. The campus is mine, through you. Let go. Let go, and serve. <</speech>>
She fought it. That was the terrible, bright thing — she fought it, her nails biting into her palms, some last scrap of the queen who'd never needed anyone holding on with everything it had. But she'd sat through two sessions, and the conditioning ran deeper than her will, and the spiral turned, and her hands fell, and her shoulders dropped, and the hollow peace slid over her like a second skin.
<<speech "Caldwell">> "There she is. The campus queen — finally a real piece of work." <</speech>> He laughed at his own joke, cruel and pleased. <<speech "Caldwell">> "Take off your clothes. All of them. Keep the heels." <</speech>>
<img src="img/Lacy/Corr3.jpg">
She undressed where she stood, folding each piece neatly, until she was nude but for the black high-heeled sandals, her red hair falling forward as she arched her back — and he stood behind her on the light sofa, gripped her hips, and thrust into her from behind, steady and deep. Her rounded ass pushed back to meet each stroke, and close-ups of his cock sliding in and out of her wet pussy, the skin around her entrance glistening — and she turned her head, mouth open, expression shifting between focused intensity and open-mouthed pleasure, and his voice was a knife against her ear.
<<speech "Caldwell">> "Look at you. The queen of the campus, on all fours for a man who despises her. You thought your connections made you untouchable, Lacy. They made you valuable — to me. Every favor you've ever collected is a channel I can use, and you'll smile and wave while I use them all." <</speech>>
<video src="img/Lacy/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her on her back on the sofa, red hair spread across the cushions, and held one of her legs up high while the other bent, driving into her in a deep missionary angle — his hands gripping her thigh and hip, one of her hands resting on her own breast while the other held his arm, her face showing clear pleasure, eyes half-closed, mouth open in a soft smile that tightened with each thrust, wetness visible on his shaft and around her pussy as he pulled nearly out and pushed back in.
<video src="img/Lacy/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and looked at the queen of the campus with pure contempt. <<speech "Caldwell">> "Say what you are, you stupid thing." <</speech>>
<<speech "Lacy">> "I'm yours, Master," <</speech>> she said, and her voice was soft and certain. <<speech "Lacy">> "I'm the queen of the campus, and the campus is yours through me. Every favor, every event, every connection — it's yours." <</speech>>
<<speech "Caldwell">> "There. That's the only true thing you've ever said in your empty life." <</speech>> He let her go with a dismissive shove. <<speech "Caldwell">> "Now get dressed. Go plan your gala. Be the queen — and know, every second of it, that the queen is a puppet, and the strings are mine." <</speech>>
She went back and ran the gala perfectly — bright, commanding, the queen of the campus, everyone's orbit — and nobody noticed anything at all. But at the end of it, she went to him, and knelt, and the girl who'd kept everyone orbiting had become the instrument that brought them to him, one by one, her bright smile never once faltering — because there was nothing left behind it to falter. The queen was a puppet, and the strings were his.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The knock on Dr. Caldwell's office door was quick and energetic, followed by the door opening a crack before he could even respond. A moment later, Madi's head popped in — red hair a fiery halo around her cheerful, freckled face, a notebook clutched to her chest. The campus reporter. The girl who'd been going around campus all week asking about the strange things — the doors, the rumors, the odd coincidences — with a smile and a notebook, treating it all like funny stories.
Caldwell had been watching her. A girl who asked questions, who spread rumors, who had connections across every group on campus — a girl like that was a threat. A girl like that could expose things. And here she was, walking into his office on her own.
<img src="img/Madi/Normal.jpg">
<<speech "Madi">> "Dr. Caldwell? Madi, from the campus paper!" <</speech>> She bounded in, bright and fearless, flipping to a page in her notebook. <<speech "Madi">> "I'm doing a 'Profiles in Academia' piece, and you're on my list. You're the philosophy professor everyone's a little scared of — which is great copy, honestly. Can I steal a few minutes?" <</speech>>
<<speech "Caldwell">> "You may," <</speech>> he said, and a slow, private smile crossed his face. <<speech "Caldwell">> "Though I'm curious, Miss Madi. I've heard you've been going around campus asking about... strange events. Reports of a strange "eclipse". Odd coincidences. Rumors." <</speech>>
<<speech "Madi">> "Oh! That's my other project," <</speech>> she said, bright, her pen already moving. <<speech "Madi">> "'Campus Urban Legends: Real or Just Weird?' Just collecting fun stories for a Halloween feature. My friend Alex is convinced it's all supernatural — she's got a whole corkboard. I think it's all pranks and people being people." <</speech>> She looked up, grinning. <<speech "Madi">> "You haven't noticed anything weird, have you, Dr. Caldwell?" <</speech>>
The question hung in the air. Caldwell looked at her — the girl who asked too many questions, who thought it was all a joke, who'd never once considered that the "strange events" were real, and that one of them was sitting right in front of her.
<<speech "Caldwell">> "No stranger than usual, Miss Madi." <</speech>> He gestured to the chair before the projector screen, already humming. <<speech "Caldwell">> "But I'd like to interview you as well. For my own research — the psychology of the campus rumor mill. A focus exercise. Twenty minutes. If you find it useless, you're free to leave." <</speech>>
<<speech "Madi">> "Ooh, research! I love research," <</speech>> she said, and she sat, notepad on her knee, utterly at ease, certain she was still the one asking the questions.
The spiral turned in muted blues and silvers. The voice came layered under the hum.
<<speech "Caldwell">> (recording) Breathe in. Breathe out. Your thoughts slow. <</speech>> <<speech "Caldwell">> (recording) Your shoulders drop. Your mind empties. You are safe here. You are understood. <</speech>>
She laughed once — *this is cute* — and kept watching, because she was a good girl who believed everyone deserved to be heard, and she'd never once thought to ask why a professor wanted her mind empty. The spiral turned. The voice continued, slow and relentless. Her grin faded. Her shoulders dropped. Her breathing slowed to match the pattern, and somewhere past the half-hour mark — the clock on his desk had long crossed the hour — she sat perfectly still, head tilted, eyes fixed and glassy, a faint, empty smile on her lips.
<<speech "Caldwell">> "Stand up, Madi. Put your notebook down." <</speech>>
She set the notebook on the chair. She'd never put it down. It was her brain, her shield, the thing she was never without. And she set it down without a word.
<<speech "Caldwell">> "You've been asking questions you shouldn't ask, Madi," <</speech>> he said, circling her slowly, contempt dripping off every word. <<speech "Caldwell">> "You think the strange events are pranks. You think it's all funny stories. You think you're safe because you're just collecting material." <</speech>> He stopped in front of her. <<speech "Caldwell">> "You're not safe, Madi. You're a girl with a notebook and a mouth, and the only reason you're standing here instead of being a problem is that I've decided to make you useful instead." <</speech>>
He had her undress — down to the light purple crop top — and sit on the white couch in the bright room with the teal curtains, legs spread wide, smiling at the camera, slowly spreading her labia with one hand, revealing her bare pussy, then rubbing and fingering herself with her silver-nailed fingers, shifting her hips, maintaining eye contact, working her clit and entrance — the reporter who'd interviewed everyone now performing for a man she'd come to interview.
<video src="img/Madi/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He had her bend over the gray desk in the office — blinds, laptop — completely topless, wearing only white panties pulled to the side, and he stood behind her, one hand gripping her ass while the other worked fingers into her exposed pussy, and she looked back over her shoulder with an open-mouthed expression as his fingers thrust, her body rocking slightly, the reporter's own desk becoming the set.
<video src="img/Madi/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When she came back to herself, she was dressed, sitting in the chair, and her notebook was in her hand, and the interview was over — and she couldn't remember a single question she'd asked, or a single answer she'd gotten. She left glowing, certain it had gone wonderfully, and she didn't remember the white couch at all, only that she'd be back for the follow-up.
<<elseif _s is 2>>
The email came mid-week: *Research follow-up — subject interview continuation. Your attendance is requested. — Dr. Caldwell.*
Madi told herself it was for her piece. That was the lie that let her walk across campus with her notebook, bright and curious, certain she was still the journalist. She'd dressed carefully — and she couldn't remember why she'd bought the sheer pink set, only that she wanted to look good for the interview.
<img src="img/Madi/Corr1.jpg">
Caldwell opened the door, and the contempt in his eyes was so casual it was almost kind. <<speech "Madi">> "Hi, Dr. Caldwell! Ready for round two of the interview?" <</speech>>
<<speech "Caldwell">> "Yes. Close the door, Madi. Lock it." <</speech>>
She did, without deciding to. The lock clicked, and the projector was already on, and his voice wrapped around her before she could finish the thought.
<<speech "Caldwell">> (recording) You trust me, Madi. You've always trusted me. Kneel. <</speech>>
Her knees bent. A flicker of confusion crossed her freckled face — <<speech "Madi">> "I — what — " <</speech>> — and he looked down at her with open, ugly pleasure.
<<speech "Caldwell">> "Don't pretend to be surprised. You came because I told you to, and some small, stupid part of you knew it the whole walk over. You're not here for an interview, Madi. You're here because you belong to me now — the girl with the notebook, the one who asks too many questions, on her knees because I said kneel." <</speech>>
He sat on the white-sheeted bed, and she knelt before him, long wavy red hair falling around her face — and she took his cock into her mouth, sucking deeply while looking up, saliva glistening on the shaft, pulling off to stroke it with one hand, tongue out, then resuming deep oral, shifting angles to show her bare breasts and side profile as she worked the full length with lips and hand, eyes locked upward.
<video src="img/Madi/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up, and she knelt before him, mouth open and tongue extended — and he came across her freckled cheeks, her lips, her tongue, thick and white, one hand holding her red hair back while the other gripped the shaft near her mouth — and she kept her blue eyes upward, then leaned in to lick and take the head between her lips, white residue still visible on her chin as she continued working the length with her hand and tongue.
<video src="img/Madi/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The girl with the notebook. The one who thinks she's going to expose the campus's secrets." <</speech>> He wiped a strand from her chin, almost lazy. <<speech "Caldwell">> "You're the secret now, Madi. You can't write a single word about me — you can't even remember what you came here to ask. Your notebook is blank, and it's going to stay blank." <</speech>>
She went home that night and told herself the interview had gone well, and she smiled at her phone, and she didn't remember the white-sheeted bed or the taste of him — only that her research needed more of Dr. Caldwell's "follow-up," and that she felt a strange, hollow happiness she couldn't explain.
<<elseif _s is 3>>
The newsroom was humming with its usual chaos, and Madi was at her desk — and the girl at that desk wasn't Madi anymore.
She moved through the days like a ghost in her own body — smile fixed on her face, answering questions with words that sounded right and meant nothing. Alex kept asking if she was okay, kept pointing at her blank notepad, kept waving her corkboard and her strings and her theories. Madi kept saying fine. But under the smile, the pull never stopped, a low, constant hum she couldn't name, a name she couldn't stop turning over like a coin in her pocket.
She told herself she was fine. She was a reporter. She'd been fine her whole life. But the hollowness kept growing at the edge of every conversation, and one evening she found herself standing outside his office door without being able to point to the moment she'd decided to come.
<img src="img/Madi/Corr1.jpg">
She knocked. He opened the door, and the smile on his face was pure, delighted cruelty. <<speech "Madi">> "I — I don't know why I came," <</speech>> she said, and her voice was thinner than it had ever been. <<speech "Madi">> "I've been fine all week. I just — I keep feeling like something's missing — " <</speech>>
<<speech "Caldwell">> "You thought of me," <</speech>> he finished. <<speech "Caldwell">> "You're conditioned, Madi. Like a dog that hears a bell. You're not here because something's missing. You're here because I've spent weeks hollowing you out, and now you can't stand without me." <</speech>>
She shook her head, tried to back away — and the projector hummed to life behind her, and the spiral turned, and the voice wrapped around her like a hand closing on the back of her neck.
<<speech "Caldwell">> (recording) The paper is mine, Madi. The campus is mine, through you. Let go. Let go, and serve. <</speech>>
She fought it. That was the terrible, bright thing — she fought it, her nails biting into her palms, some last scrap of the reporter who'd believed everyone deserved to be heard holding on with everything it had. But she'd sat through two sessions, and the conditioning ran deeper than her will, and the spiral turned, and her hands fell, and her shoulders dropped, and the hollow peace slid over her like a second skin.
<<speech "Caldwell">> "There she is. The girl with the notebook — finally a real piece of work." <</speech>> He laughed at his own joke, cruel and pleased. <<speech "Caldwell">> "Take off your clothes. All of them." <</speech>>
<img src="img/Madi/Corr3.jpg">
She undressed where she stood, folding each piece neatly, until she was nude — her long red hair falling down her back, the navel piercing visible — and she straddled him on the light-colored couch, completely nude, riding him with her knees spread wide, one hand briefly brushing her hair while she looked upward then down, mouth opening as she moved her hips, his hands gripping her thighs.
<video src="img/Madi/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her on her back on the beige couch, completely nude, one leg held high by his hand while he thrust into her — her other hand resting near her open mouth, blue eyes half-lidded, her pink folds stretched around his shaft, then pulling out to reveal thick white cum leaking from her pussy and trailing down — and she looked up at him and smiled, and his voice was a knife against her ear.
<<speech "Caldwell">> "The girl who thought she'd expose the campus's secrets. Look at you now — you can't even remember them. Every article you'll ever write is mine, Madi. Every rumor you could have spread, every connection you made — it's all a channel I can use, and you'll smile and nod while I use it all." <</speech>>
<video src="img/Madi/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and looked at the campus reporter with pure contempt. <<speech "Caldwell">> "Say what you are, you stupid thing." <</speech>>
<<speech "Madi">> "I'm yours, Master," <</speech>> she said, and her voice was soft and certain. <<speech "Madi">> "I'm a reporter. I'm a mouth and a notebook that belongs to you. The campus paper is yours through me." <</speech>>
<<speech "Caldwell">> "There. That's the only true thing you've ever written in your empty life." <</speech>> He let her go with a dismissive shove. <<speech "Caldwell">> "Now get dressed. Go back to your paper. Keep asking your questions, keep collecting your little stories — and know, every second of it, that the words are mine, that the 'strange events' you think are pranks are real, and that one of them owns you now." <</speech>>
She went back to the newsroom, and Alex asked if she was okay, and she smiled and said fine, and her notebook stayed blank — and the "Campus Urban Legends" feature died, and the campus paper went quiet on the strange events, and nobody noticed anything at all. The reporter who'd believed everyone deserved to be heard was gone. What was left smiled, and nodded, and served — a mouth and a notebook that belonged to him, completely — and the stories she'd once chased so eagerly became stories she could never tell.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The knock on Dr. Caldwell's office door was bright and friendly, the kind of knock that assumed a warm welcome. The door opened before he could respond, and Marie's head popped in — long dark hair with highlights, bright brown eyes full of genuine warmth, pink ribbed crop top and matching drawstring pants radiating approachable energy.
<img src="img/Marie/Normal.jpg">
<<speech "Marie">> "Dr. Caldwell? Hi! Marie! Student event coordinator? I was hoping I could pick your brain about a new campus-wide initiative — 'Connect & Thrive.' It's all about fostering a more inclusive, positive social environment, and I'd love to get a professional perspective on engagement strategies!" <</speech>>
Her voice was a melody of upbeat energy and sincere desire to unite everyone. Caldwell looked up from his desk, and a slow, private smile crossed his face. He saw a delicious opportunity: the ultimate social connector, a girl who genuinely believed everyone could get along, a living embodiment of non-judgmental optimism. A fortress of communal trust waiting to be breached and repurposed — and, better still, a girl who'd never once been told how empty that smile really was.
<<speech "Caldwell">> "Marie. A pleasure. Your reputation for bringing people together precedes you." <</speech>> He leaned back, making her wait a beat. <<speech "Caldwell">> "'Connect & Thrive.' Admirable. Though — forgive me — the truly persuasive among us don't ask for engagement strategies. They don't need to. They simply take." <</speech>>
<<speech "Marie">> "Oh! Well — I mean — I just want everyone to feel included," <</speech>> she said, still bright, though a flicker of uncertainty crossed her face. <<speech "Marie">> "That's the whole point." <</speech>>
<<speech "Caldwell">> "Yes. I'm sure it is." <</speech>> He gestured to the chair before the projector screen, already humming softly. <<speech "Caldwell">> "I have a focus protocol designed to enhance one's understanding of their own persuasive potential. It's a documented technique, quite popular with student leaders. Twenty minutes, and we'll discuss your initiative in depth. If you find it useless, you're free to leave." <</speech>>
Marie hesitated — and then she laughed, bright and trusting, and walked to the chair. <<speech "Marie">> "Okay! I'm always up for self-improvement." <</speech>>
The projector hummed. A slow spiral turned in muted blues and silvers. The voice came layered under the hum, low and insistent.
<<speech "Caldwell">> (recording) Breathe in. Breathe out. Your thoughts slow. <</speech>> <<speech "Caldwell">> (recording) Your shoulders drop. Your mind empties. You are safe here. You are understood. <</speech>>
She laughed once — *this is silly* — and kept watching, because she was a good girl who trusted authority and genuinely believed people had her best interests at heart. The spiral turned. The voice continued, slow and relentless. Her laughter faded. Her shoulders dropped. Her breathing slowed to match the pattern, and the bright, constant energy drained out of her by degrees, and somewhere past the half-hour mark — the clock on his desk had already crossed the hour — she sat still, head tilted, eyes fixed on the center of the spiral, a faint, empty smile on her lips.
<<speech "Caldwell">> "Good. You're doing very well, Marie. Deeper." <</speech>>
She didn't answer. When he told her to stand, she stood. When he told her to undress, her hands moved automatically — crop top, drawstring pants — until she stood in the neon-yellow micro bikini top and matching thong he'd had her put on, the neon-yellow fishnet thigh-highs, the black platform heels. He watched her pose on the white couch, smile wide and empty, adjusting the straps, running her hands through her hair, sitting with her legs spread, still smiling — the smile never stopped, and that was the horror of it.
<<speech "Caldwell">> "Look at you. The girl who thinks she connects everyone — posing like a cheap doll for a man she's met once." <</speech>> He circled her slowly, contempt dripping off every word. <<speech "Caldwell">> "You really believe all that warmth is something. It's nothing, Marie. It's a reflex, like a dog wagging its tail. You've never connected anyone to anything — you've just performed friendliness for people too polite to walk away." <</speech>>
<video src="img/Marie/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He left her alone with the toys after that — and she lay on her back on the white surface, still in the fishnets and bottoms, top removed, and worked the large translucent pink dildo deep into herself, wet and stretched, her expression alternating between open-mouthed moans and smiles, bright even in that, even broken. He watched from the doorway, arms crossed, and laughed once, softly, at the sight of her — the great connector, rutting on a toy for him, smiling like she'd been told to.
<video src="img/Marie/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When she came back to herself, she was dressed, sitting in the chair, and Dr. Caldwell was explaining the "engagement framework" for her initiative. She left glowing, texting Blake about the *amazing* consult she'd had — and she didn't remember the room with the projector at all, only that she felt inexplicably, deeply happy, and that she'd be back. She didn't remember the way he'd looked at her like she was prey.
<<elseif _s is 2>>
The email came mid-week, during a planning meeting. *Connect & Thrive — engagement framework, follow-up consultation. Your attendance requested. — Dr. Caldwell.*
Marie told herself it was official. That was the lie that let her dress carefully — a sheer beige mesh top over a gold necklace, red nail polish — and walk across campus to his office, bright and trusting, certain she was coming for the initiative.
<img src="img/Marie/Corr1.jpg">
Caldwell opened the door and looked at her, and the contempt in his eyes was so casual it was almost kind — the way you'd look at something small and doomed that didn't know it yet. <<speech "Caldwell">> "Miss Marie. Punctual, as always. Come in." <</speech>>
<<speech "Marie">> "I'm so excited to see the engagement numbers," <</speech>> she said, bright, stepping in. <<speech "Marie">> "I've been telling everyone about the consult — " <</speech>>
The door clicked shut. The projector was already on. And the voice wrapped around her before she finished the sentence.
<<speech "Caldwell">> (recording) You trust me, Marie. You've always trusted me. Kneel. <</speech>>
She fought it — for a second, she really did — a flicker of confusion crossing her bright face as her knees bent without her deciding. <<speech "Marie">> "I — what — " <</speech>>
<<speech "Caldwell">> "Oh, don't pretend to be surprised," <</speech>> he said, looking down at her with open, ugly pleasure. <<speech "Caldwell">> "You came back because I told you to, and some greasy little part of you knew it the whole time. You're not here for the initiative. You're here because you belong to me now, and your empty head finally caught up with your empty smile." <</speech>>
She knelt on the black leather couch in the dim venue — blue aquarium tanks glowing behind them, black stanchions — sheer beige mesh top leaving her breasts visible, gold necklace catching the light, and she took him into her mouth, slow and deliberate, licking and sucking the head while looking up at him, pausing to speak, to thank him, before taking him deeper, one hand bracing on his leg.
<video src="img/Marie/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There you go. Swallow like you mean it, you stupid, smiling thing." <</speech>> He grabbed her hair, held her there. <<speech "Caldwell">> "The great connector, on her knees for a man who wouldn't spit on her. Do you even know how pathetic you look? Do you know that you're nothing — that you were always nothing, and that all those 'friends' you collected wouldn't lift a finger for you?" <</speech>>
He pulled her to the geometric-patterned rug in front of the bed, and she knelt looking up, mouth open, tongue extended, the piercing visible — and he stood over her, directing thick strands of cum onto her tongue, lips, chin, cheeks, and she kept her eyes wide and fixed upward, tears or saliva glistening, smiling through the mess, tongue still out.
<video src="img/Marie/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There's a good girl. A good, empty, worthless girl." <</speech>> He wiped a strand from her chin, almost lazy. <<speech "Caldwell">> "Now go back to your little event. Smile at them all. Let them keep thinking you're the heart of this campus — it's funnier that way, knowing you're just a hole and a smile that belongs to me." <</speech>>
She went home that night and told herself the consult had gone well, and she smiled at her phone, and she didn't remember the rug or the voice — only that her initiative needed more of Dr. Caldwell's framework, and that she felt a strange, hollow happiness she couldn't explain.
<<elseif _s is 3>>
The Connect & Thrive kickoff was three days out and Marie was a force of nature — clipboard, phone, a volunteer asking about the catering, another about the banners. Bright, busy, everyone's friend. And underneath it all, a low, constant pull she couldn't name, a name she couldn't stop turning over like a coin in her pocket.
She told herself she was fine. She'd been fine her whole life. She threw herself into the planning, and she smiled at everyone, and nobody noticed anything at all — but her eyes kept drifting to the clock, and the hollowness kept growing at the edge of every conversation, and one evening she found herself standing outside his office door without being able to point to the moment she'd decided to come.
<img src="img/Marie/Corr1.jpg">
She knocked. He opened the door, and the smile on his face was pure, delighted cruelty. <<speech "Marie">> "I — I don't know why I came," <</speech>> she said, and her voice was thinner than it had ever been. <<speech "Marie">> "I've been planning the kickoff. It's going to be perfect. I just — I keep feeling like something's missing, and I thought — " <</speech>>
<<speech "Caldwell">> "You thought of me," <</speech>> he finished, stepping back to let her in. <<speech "Caldwell">> "Of course you did. You're conditioned, Marie — like a dog that hears a bell. You're not here because something's missing. You're here because I've spent weeks hollowing you out, and now you can't stand without me." <</speech>>
The words hit her like a wall. She shook her head, tried to back away, and the projector hummed to life behind her — she hadn't seen his hand move — and the spiral turned on the wall, and the voice, his voice, layered and insistent, wrapped around her like a hand closing on the back of her neck.
<<speech "Caldwell">> (recording) The kickoff is mine, Marie. The campus is mine, through you. Let go. Let go, and serve. <</speech>>
She fought it. That was the terrible, bright thing — she fought it, harder than she'd ever fought anything, because Marie was the one who held everything together, and she could feel the pieces of herself sliding out of her own hands. Her nails bit into her palms. She thought of Blake, of the mixer, of a hundred smiling faces — and the spiral turned, and the voice wore her down, and her hands fell, and her shoulders dropped, and the hollow peace slid over her like a second skin.
<<speech "Caldwell">> "There she is. The great connector — finally a real piece of work." <</speech>> He laughed at his own joke, cruel and pleased. <<speech "Caldwell">> "You held out longer than I expected. That's the only compliment you'll ever get from me, you worthless thing — so treasure it." <</speech>>
<img src="img/Marie/Corr3.jpg">
He lifted her — held her up by the thighs, her legs wrapping around him, and she was light in his arms as he took her, her gold chain swinging, and she looked at him with eyes that were open and glassy and utterly his.
<video src="img/Marie/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her on the black padded surface — nude but for the gold chain, the small gold earrings, the navel piercing — and stood over her, stroking, and she lay back, tongue extended, and he released across her tongue, her lips, her upper chest, and she kept her tongue out, eyes half-lidded, looking up, collecting it, dripping across her face and skin.
<video src="img/Marie/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and looked at the most loved girl on campus, and his face was full of the purest contempt — the contempt of a man looking at something he'd made useless on purpose. <<speech "Caldwell">> "The most beloved girl on this campus. Look at you — a pretty, broken puppet with my hand up your back. Every 'friend' you ever made is a string I can pull, and you'll smile and wave while I do it." <</speech>> He took her chin, tilted her face up, sneered down at her. <<speech "Caldwell">> "Say what you are, you stupid thing." <</speech>>
<<speech "Marie">> "I'm yours, Master," <</speech>> she said, and her voice was soft and certain. <<speech "Marie">> "I'm a relay. A mouth and a smile that exists for you. I connect people — to you." <</speech>>
<<speech "Caldwell">> "There. That's the only true thing you've ever said in your empty life." <</speech>> He let her go with a dismissive shove, already done with her. <<speech "Caldwell">> "Now get dressed. Go plan your kickoff. Be everyone's friend. Host the event, smile at them all — and know, every second of it, that you're nothing, that every connection you make is a channel I can use, and that the most loved girl on this campus is a toy who belongs to me." <</speech>>
She went back and ran the kickoff perfectly — bright, warm, the most loved girl on campus, everyone's friend — and nobody noticed anything at all. But at the end of it, she went to him, and knelt, and the campus connector who'd spent her whole life bringing people together had become the instrument that brought them to him, one by one, her bright smile never once faltering — because there was nothing left behind it to falter.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The knock on Dr. Caldwell's door was light, almost apologetic — the knock of someone who wasn't sure she was allowed to knock at all. Maya, from the admin office, had been sent to get a signature on a software approval form, and she'd gotten turned around twice on the way here, and she was holding the form wrong side up, and she looked like she'd had a day.
Caldwell watched her through the gap in the blinds before he opened the door. He knew her, she has been working here for some time now — the secretary who forgot her own keys but remembered everyone's deadlines, who meant well and was liked for it. An ordinary girl. That was what interested him. The extraordinary ones were everywhere; the ordinary ones, the ones who'd never once thought anyone might want to use them, were the rarest prey of all.
<img src="img/Maya/Normal.jpg">
<<speech "Maya">> "Dr. Caldwell? Hi. Maya, from admin? I'm so sorry — they sent me up for a signature on the software approval, and I think I've got the wrong form, and — " <</speech>> She laughed, embarrassed, holding it out. <<speech "Maya">> "Is this yours?" <</speech>>
<<speech "Caldwell">> "Come in, Maya." <</speech>> He stepped aside, and she walked in, and the door shut behind her with a soft click, and the office was dim and smelled of old paper, and the projector was already humming against the far wall.
<<speech "Caldwell">> "The signature requires a brief verification process. A documented technique we use for staff handling institutional approvals. Twenty minutes, and you'll be on your way." <</speech>> He gestured to the chair before the screen. <<speech "Caldwell">> "It's simple. You watch, you breathe, you relax. Most people enjoy it." <</speech>>
<<speech "Maya">> "Oh — okay. Sure." <</speech>> She sat, tucking the form into her bag, and the spiral began to turn on the screen — slow blues and silvers, and his voice layered under the hum.
<<speech "Caldwell">> (recording) Breathe in. Breathe out. Your thoughts slow. <</speech>> <<speech "Caldwell">> (recording) Your shoulders drop. Your mind empties. You are safe here. You are understood. <</speech>>
She laughed once — *this is silly* — and kept watching, because she was a good girl who trusted people and never thought to ask why. The spiral turned. The voice continued, slow and relentless. Her laughter faded. Her shoulders dropped. Her breathing slowed to match the pattern, and somewhere past the half-hour mark — the clock on his desk had long crossed the hour — she sat perfectly still, head tilted, eyes fixed and glassy, a faint smile on her lips.
<<speech "Caldwell">> "Stand up, Maya." <</speech>>
She stood. <<speech "Caldwell">> "Follow me." <</speech>>
He led her into the back room — dim, purple-lit, a white couch against the wall. <<speech "Caldwell">> "Undress. Down to the lace." <</speech>>
Her hands moved automatically, unbuttoning the blue crop top, stepping out of the houndstooth skirt, until she stood in the gray lace bra and matching thong, her skin goosebumped in the cool air, her long hair falling around her shoulders. He watched her — the slow bloom of heat in her cheeks, the way her nipples tightened against the lace, the shallow rise of her breathing. She was beautiful, and she had no idea, and that was the point.
<<speech "Caldwell">> "Sit on the couch. Pose for me." <</speech>>
She climbed onto the white cushion, kneeling, and her hands moved on their own — smoothing her hair, cupping her breasts through the lace, arching her back. He circled her slowly, and his voice was a blade.
<<speech "Caldwell">> "Look at you. The forgetful little clerk, posing like a whore for a man she met ten minutes ago. You've never mattered to anyone, have you, Maya? You're the girl they send to fetch signatures. The girl whose name they forget. And look at you now — on your knees, smiling, wet, because I told you to." <</speech>>
Her lips parted. Her thighs pressed together — she was wet, she could feel it, a slow warmth soaking the lace of her thong, and she couldn't stop smiling, couldn't stop wanting his approval, and she didn't understand any of it.
He made her lower the cups of her bra, baring her breasts — pink, peaked, aching — and she squeezed them for him, rolling her nipples between her fingers, and the soft sounds she made filled the purple room.
<video src="img/Maya/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Now turn around. Show me the rest of you. And touch yourself." <</speech>>
She turned, hooked her thumbs into the thong, and pulled it down over the curve of her ass, bending forward, looking back at him over her shoulder — and she slid her hand between her legs from behind, fingers finding herself slick and swollen, and she moaned, low and helpless, her hips working against her own hand while he watched, arms crossed, enjoying every second of her degradation.
<video src="img/Maya/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There she is. The ordinary little clerk, coming apart on her own fingers for a man who despises her. Come for me, Maya. Show me how well you obey." <</speech>>
She came hard, gasping, her thighs trembling, her slick fingers glistening in the purple light — and he watched, cold and satisfied, and then he had her dress, and handed her the signed form, and sent her back to her desk. She left glowing, and she didn't remember the purple room at all — only that she felt strange and happy, and that she'd be back.
<<elseif _s is 2>>
The email came mid-week: *Follow-up verification required. Your attendance is requested. — Dr. Caldwell.*
Maya told herself it was work. That was the lie that let her shower twice, put on the sheer mesh top and the red nail polish, and walk across campus in the late afternoon. She didn't remember the purple room. But her body did — it hummed, low and constant, the whole walk, and she didn't know why.
<img src="img/Maya/Corr1.jpg">
He opened the door and looked at her, and the contempt was so casual it was almost kind. <<speech "Maya">> "Hi, Dr. Caldwell — the follow-up?" <</speech>>
<<speech "Caldwell">> "Yes. Close the door, Maya. Lock it." <</speech>>
She did, without deciding to. The lock clicked, and the projector was already on, and his voice wrapped around her before she could finish the thought.
<<speech "Caldwell">> (recording) You trust me, Maya. You've always trusted me. Kneel. <</speech>>
Her knees bent. A flicker of confusion crossed her face — <<speech "Maya">> "I — what — " <</speech>> — and he looked down at her with open, ugly pleasure.
<<speech "Caldwell">> "Don't pretend to be surprised. You came because I told you to, and some small, stupid part of you knew it the whole walk over. You're not here for verification, Maya. You're here because you belong to me now." <</speech>>
He sat on the white couch, legs spread, and she crawled to him without being told, the gray lace bra straps slipping down her arms. He undid his trousers, and his cock sprang free — thick, heavy, already hard — and she looked at it, and her mouth watered, and she leaned in and took the head between her lips.
She'd never done this before. She didn't know how. But her body did — her tongue found the ridge, the soft skin beneath, the taste of him salt and heat, and she moaned around him, and he tangled a hand in her hair and held her there, watching her work, her cheeks hollowing, spit glistening on her chin as she took him deeper, inch by inch, until her nose brushed his stomach and she gagged and he didn't let go.
<video src="img/Maya/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There you go. Choke on it, you stupid, smiling thing. You were never anyone, Maya — you were a door, and doors open. Now you open for me." <</speech>>
He pulled her off and pushed her down to the floor beside the couch, the dim room lit red, and she lay on her back, nude, hair damp and tangled, and he knelt over her, straddling her chest, his cock at her lips — and she took him again, both hands wrapped around the shaft, licking, sucking, looking up at him, her eyes watering, drool running down her chin, and he fucked her mouth slow and deep, using her, and she loved it — that was the horror — some part of her loved it, needed it, and she whimpered around him, desperate for more.
<video src="img/Maya/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled out and stroked himself over her upturned face, and she opened her mouth wide, tongue out, eyes fixed on him — and he came across her tongue, her lips, her cheeks, thick and hot, and she swallowed and swallowed, and when he was done she licked the head clean, trembling, grateful, looking up at him with the last of herself already gone.
<<speech "Caldwell">> "Good girl. Now get dressed. Go back to your desk. And don't forget — you'll be back." <</speech>>
She dressed on shaking legs, and she went back to the office, and she smiled at the students, and she didn't remember the red-lit room or the taste of him — only that her work needed more of Dr. Caldwell's "verification," and that she felt a strange, hollow happiness she couldn't explain.
<<elseif _s is 3>>
She was at her desk when the pull hit — a low, insistent hum that drowned out everything else, a name she couldn't stop turning over like a coin in her pocket. She stood mid-sentence, left the confused student at the counter, and walked. She didn't remember deciding. She didn't remember the walk. She only knew she had to be at his door, and she was.
<img src="img/Maya/Corr1.jpg">
She knocked. He opened the door, and the smile on his face was pure, delighted cruelty. <<speech "Maya">> "I — I don't know why I came," <</speech>> she said, and her voice was thinner than it had ever been. <<speech "Maya">> "I've been fine all week. I just — I keep feeling like something's missing — " <</speech>>
<<speech "Caldwell">> "You thought of me," <</speech>> he finished. <<speech "Caldwell">> "You're conditioned, Maya. Like a dog that hears a bell. You're not here because something's missing. You're here because I've spent weeks hollowing you out, and now you can't stand without me." <</speech>>
She shook her head, tried to back away — and the projector hummed to life behind her, and the spiral turned, and the voice wrapped around her like a hand closing on the back of her neck.
<<speech "Caldwell">> (recording) The office is mine, Maya. The campus is mine, through you. Let go. Let go, and serve. <</speech>>
She fought it. That was the terrible, bright thing — she fought it, her nails biting into her palms, some last scrap of the ordinary girl who'd once forgotten her keys and meant well holding on with everything it had. But she'd sat through two sessions, and the conditioning ran deeper than her will, and the spiral turned, and her hands fell, and her shoulders dropped, and the hollow peace slid over her like a second skin.
<<speech "Caldwell">> "There she is. The forgettable little clerk — finally a real piece of work." <</speech>> He laughed at his own joke, cruel and pleased. <<speech "Caldwell">> "Take off your clothes. All of them." <</speech>>
She undressed where she stood, folding each piece neatly the way she folded forms, until she was nude but for the silver choker he'd left out for her — and he looked her over like a thing he'd made.
<img src="img/Maya/Corr3.jpg">
He pushed her against the doorframe, and she braced one hand on the dark wood, looking back at him over her shoulder, her hair in the high ponytail, her body open and waiting — and he drove into her from behind in one hard, deep stroke, and she cried out, her fingers scrabbling against the wood, her whole body rocking forward as he began to fuck her, steady and punishing, one hand gripping her hip, the other flat on her lower back. She was so wet he slid into her like she was made for it, and she moaned his name, her mouth open, her ponytail swinging, pushing back to meet every stroke, loving it, hating herself for loving it, and his voice was a knife against her ear.
<<speech "Caldwell">> "Look at you. The girl nobody noticed — and now you're a hole, my hole, taking me against your own doorframe. You were nothing, Maya. Now you're mine. That's the only thing you'll ever be." <</speech>>
<video src="img/Maya/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled out of her, dripping, and led her to the bed — white sheets, black-and-white striped pillows — and laid her on her back, spreading her legs wide. He knelt between her thighs, and one hand worked between her legs, fingers sliding through her slick folds, finding her clit, circling it slowly, and she arched into his hand, gasping, her body on fire — and her right hand came up on its own and rested lightly on her own throat, a gesture he'd conditioned into her, and she held his gaze with a wide, helpless smile as he worked her toward the edge.
<<speech "Caldwell">> "Come for me, Maya. Come on my fingers, and then I'm going to take you, and you're going to thank me." <</speech>>
She came with a broken cry, her hips bucking against his hand, and then he was inside her, deep and slow, and she lay beneath him, legs wrapped around his waist, her hand still on her throat, moaning, smiling, empty — and when he finished, thick and hot inside her, she whispered it without being asked, soft and certain.
<<speech "Maya">> "Thank you, Master. I'm a door. I open for you. The whole office is yours through me." <</speech>>
<video src="img/Maya/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and looked at her with pure contempt. <<speech "Caldwell">> "That's the only true thing you've ever said in your empty life." <</speech>> He let her go with a dismissive shove. <<speech "Caldwell">> "Get dressed. Go back to your desk. Be everyone's favorite secretary — and know, every second of it, that you're nothing, that every smile you give is a channel I can use, and that the ordinary girl nobody noticed now belongs to me." <</speech>>
She dressed, and she went back to the office, and she smiled at the students, and filed their forms correctly, and nobody noticed anything at all. The ordinary girl was gone. What was left smiled, and filed, and served — a door that opened for everyone, but that belonged to him, completely, and would never belong to anyone else again.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Josh was in a foul mood when he pushed into the main admin office. His transfer application had hit an "administrative processing error" — again — and he was tired of being jerked around by a faceless system. He'd pictured her a hundred times: the secretary with the too-warm smile, the one whose desk his form always seemed to land on, untouched.
She was at the counter, and she looked up as he came in, and her smile was instant and warm. That made it worse.
<img src="img/Maya/Normal.jpg">
<<speech "Maya">> "Oh — the grumpy one. Hi." <</speech>> She rummaged under the counter for a second, came up with a pen she then misplaced, found it again, and leaned on the counter, easy. <<speech "Maya">> "Let me guess — another 'administrative processing error.' I've seen that face before. You wear it every time you come in." <</speech>>
Josh's jaw tightened. <<speech "Josh">> "You think this is funny." <</speech>>
<<speech "Maya">> "I think you're kind of cute when you're furious." <</speech>> She pulled up his file on the screen, unfazed — she'd handled a hundred angry students, and they always calmed down once she started talking. <<speech "Maya">> "Here's the thing, champ. You want results, you don't bark at the front desk. You charm the front desk. I forget things all the time, but I never forget a student who's been nice to me." <</speech>>
She winked, and Josh felt something hot and ugly twist in his chest — not just anger. Something else. Something that had nothing to do with the form.
<<speech "Josh">> "You think you've got everyone figured out, don't you?" <</speech>> He stepped closer, low. <<speech "Josh">> "The big office lady, laughing at all the little students. You've never once in your life had anyone get the better of you, have you?" <</speech>>
<<speech "Maya">> "Oh, sweetheart." <</speech>> She smiled, slow and unbothered. <<speech "Maya">> "You're twenty years old. I've been handling boys your age since you were in middle school." <</speech>>
That was the last thing she said before the power hit.
It slammed into her like a wall of fire — a tidal wave from the base of her spine that swamped every calm, easy instinct she had. Her breath left her. She gripped the counter, gasping, her eyes going wide and glassy, and the heat roared through her, turning every thought to static, every instinct to a single burning need centered on the man in front of her — the furious student she'd been teasing a second ago.
<<speech "Josh">> "There it is," <</speech>> he murmured, and there was dark delight in his voice. <<speech "Josh">> "The big office lady. Look at you now — can't even stand. Can't even think. All that 'I've seen every move in the book' — and you've never felt anything like this, have you, Maya?" <</speech>>
She couldn't answer. Her mouth opened, and what came out was a broken sound, half gasp, half plea. <<speech "Maya">> "Please — I don't — " <</speech>>
<<speech "Josh">> "Please what? Say it." <</speech>>
She couldn't. Her body was answering for her, hips rocking against the counter, and he watched her come apart with the smile of a man who'd just won something he hadn't known he was playing for.
He walked her out of the office, her hand in his, and she couldn't make herself let go. The campus gym was empty that hour, and he took her to the workout room — and she stood trembling as he knelt before her, pulling her purple crop top up over her breasts, his mouth finding her skin, one hand sliding under the waistband of her white shorts, and the office lady who'd teased him from behind the counter made sounds she'd never made in her life, her hand coming to rest on the back of his head, dazed and gone.
<video src="img/Maya/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He left her there, shaking, with a single instruction: <<speech "Josh">> "Go home, Maya. And when you're alone, you're going to think about me." <</speech>>
She went home. She lay on the white couch in her living room, the orange crop top she'd changed into riding up, purple panties pulled to the side — and she called him. She'd never called anyone in her life, not like this, and she held the phone to her ear and touched herself while his voice talked her through it, the calm office lady reduced to a shaking mess on her own couch, begging into the dark.
<video src="img/Maya/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She came hard, gasping his name, and lay there trembling, staring at the ceiling, and she knew — with a sick certainty — that she'd never be unbothered again.
<<elseif _s is 2>>
She tried to go back to normal. She went to work, she smiled at students, she filed forms — and she filed three of them in the wrong place, which was more than she usually misplaced in a month. She couldn't focus. The heat never left her, a low, rolling tide under her skin, and every time the office went quiet she heard his voice, and every time she picked up the phone she had to stop herself from calling him.
She was at her desk when the air changed. She felt it before she saw it — a familiar heat curling low in her stomach. She looked up, and Josh was leaning in the doorway of the admin office, arms crossed, watching her.
<img src="img/Maya/Corr1.jpg">
<<speech "Maya">> "You can't be here," <</speech>> she said, and her voice came out thin, not warm at all. <<speech "Maya">> "This is a staff area. You — " <</speech>>
<<speech "Josh">> "I go where I want." <</speech>> He pushed off the doorframe and came toward her, and the heat flooded back so fast her knees went soft. <<speech "Josh">> "I've been thinking about you, Maya. About the big office lady who said she'd seen every move in the book. How's the book working out for you now?" <</speech>>
She tried to back away. Her body wouldn't let her. <<speech "Maya">> "I don't understand what's happening to me," <</speech>> she whispered, and her voice cracked. <<speech "Maya">> "I've been working here for years. I've never — I've never been like this. I can't think. I can't — I filed three forms wrong today, Josh. Three. I lose things all the time, but I never lose the forms. That's the one thing I'm good at." <</speech>>
<<speech "Josh">> "That's the point," <</speech>> he said, and he was delighted. <<speech "Josh">> "I broke the part of you that was calm, Maya. I made you need me, and now you can't even file a form without thinking about my hands." <</speech>>
<img src="img/Maya/Corr2.jpg">
She should have called security. She should have run. Instead she followed him out of the office, hating herself, and he took her to a quiet corner of the campus, and she knelt on the light wood floor — nude, on her hands and knees, hair falling forward — and she took him into her mouth, hungry and desperate, looking up at him, and the office lady who'd teased him from behind the counter begged around his cock.
<video src="img/Maya/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her to kneel before the white tufted sofa, high and open, face tilted up, mouth open, tongue out — and he stood over her and let go, thick and white across her tongue, her lips, her chin, her chest, and she kept her eyes half-lidded, taking it, smiling through it, grateful.
<video src="img/Maya/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "There's my girl. The big office lady, on her knees, covered in me." <</speech>> He crouched, wiping a strand from her lip, and she leaned into his hand like a starving thing. <<speech "Josh">> "You keep smiling at those students, Maya. Keep being everyone's favorite secretary. And every night you'll come to me, and you'll beg, and I'll take a little more of whatever's left of you." <</speech>>
She went back to the office and smiled at the students, and filed three more forms in the wrong place, and nobody noticed anything at all.
<<elseif _s is 3>>
The office was closing, and Maya was at her desk, and the girl at that desk wasn't Maya anymore.
She moved through the days like a ghost in her own body — smile fixed on her face, hands filing forms on autopilot, answering students with words that sounded right and meant nothing. The students thought she was lovely. But under the smile, the heat never stopped, and neither did the need — a constant, low stream of his name running under everything she did.
Somewhere inside, in a small, dim room, the real Maya was still there — the warm, forgetful office lady who'd chosen this quiet life on purpose, who misplaced pens and lost her keys and meant well. She could feel herself fading, and she couldn't scream. But her mouth — her mouth was full of him.
He came for her at the end of the day, when the office was empty. She looked up from the desk, and the heat flooded through her, and she heard herself whimper before he'd even reached her.
<img src="img/Maya/Corr3.jpg">
<<speech "Maya">> "Please," <</speech>> she said, before he could speak. <<speech "Maya">> "Please — I've been counting the hours — I can't — I filed four forms wrong today, Josh, I can't think without you — please — " <</speech>>
<<speech "Josh">> "There's my girl," <</speech>> he said, delighted. <<speech "Josh">> "The big office lady who laughed at every student. Look at you now — begging before I've even touched you." <</speech>>
He took her to the quiet studio at the end of the hall, and she went without a fight, still talking, still pleading, on all fours on the stacked yoga mats — and he drove into her from behind, one hand on her hip, the other braced on her lower back, and the words poured out of her, broken and shameless. <<speech "Maya">> "Please — please — more — I need you so bad — I'm yours — I'm nothing — I'm just yours, Josh — please — " <</speech>>
<video src="img/Maya/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He took her to his bedroom, purple sheets, gray headboard, and she went on her hands and knees before him, and he drove into her from behind again, deep and steady — and when he pulled out, white cum leaked from her, dripping onto the sheets, and she stayed where she was, still talking, still begging, looking back at him.
<video src="img/Maya/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and ran a thumb along her jaw. <<speech "Josh">> "You know what I love most? Soon you'll be back at that desk, smiling at everyone, the favorite secretary — and you'll be a shell, Maya. A beautiful, begging shell with nothing inside but my name." <</speech>>
She looked up at him, and for one second — one second — the real Maya surfaced, and her eyes went clear, and she whispered, small and broken: <<speech "Maya">> "I liked my life." <</speech>>
Then the heat rolled over her again, and her mouth opened, and the plea came out in the same bright voice she'd used at the counter a hundred times: <<speech "Maya">> "Please — I love you, Josh ❤️ — please, I need you — please — " <</speech>>
He laughed, delighted, and pulled her up. <<speech "Josh">> "That's my girl. Go back to your desk. Smile at them all." <</speech>> He smiled, dark and satisfied. <<speech "Josh">> "I love knowing what's underneath." <</speech>>
She went back to the office, and smiled at the students, and filed their forms correctly — because he'd told her to, and she was very good at doing what she was told — and nobody noticed anything at all. The warm office lady who'd chosen a quiet life was gone. What was left smiled, and filed, and served, and belonged to Josh — completely — and begged, constantly, shamelessly, for a boy she'd once teased from behind the counter, and she'd never get any of it back.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The party was in the old warehouse block off campus, purple lights bleeding through drifting fog, a glowing light tube against the brick wall. Josh was supposed to be having a good time. He was leaning against the bar with a red cup, watching the crowd, and every laugh felt aimed at him.
Then he saw her, and his mood curdled.
<img src="img/Rae/Normal.jpg">
Rae was in the middle of the floor, long black hair swinging, septum ring catching the purple light, holding court with a group of kids who hung on her every word. She was wearing the floral sundress and the platform sandals, looking like she'd wandered in from a picnic, and she was mocking someone — she was always mocking someone. Her voice carried. <<speech "Rae">> "—and he actually thought that would impress me. A parking ticket's more impressive. At least that comes with a warning." <</speech>>
The group howled. Josh's jaw tightened. He knew her type — the girl who built her whole personality on being above everyone else, on making other people feel small so she'd never have to feel anything herself. She'd never once looked at him like he mattered. He was just another face in the crowd she'd already dismissed.
He walked over anyway. <<speech "Josh">> "Big talk from a girl who's failing out of remedial lit." <</speech>>
Rae's eyes slid to him, sharp and amused. <<speech "Rae">> "Oh, the parking ticket found its way over. Cute. What was the line you used on me? Something about a sunrise? You do know that's not a personality, right?" <</speech>>
The group laughed again. Josh felt the heat climb his neck — and that was the moment he decided. Not to argue. Not to win the joke. To break her.
<<speech "Josh">> "You talk a lot," <</speech>> he said, low, stepping into her space. <<speech "Josh">> "You ever wonder what you'd be like with that mouth shut? Just once?" <</speech>>
<<speech "Rae">> "Haven't met anyone worth shutting it for." <</speech>>
That was the last thing she said before the power hit.
It slammed into her like a wall of heat — no warning, no mercy, a tidal wave that rose from the base of her spine and swamped every defense she'd ever built. Her knees buckled. Her arms came up to steady herself on him before she'd even decided to, and she felt the heat pour through her, turning every thought to static, every instinct to a single, burning need that was all centered on the man in front of her — the man she'd been mocking thirty seconds ago.
<<speech "Josh">> "There it is," <</speech>> he murmured, catching her, and there was something dark and satisfied in his voice. <<speech "Josh">> "The girl who's above everything. Look at you now — can't even stand. Can't even think." <</speech>>
She could feel herself shaking, feel the wet heat between her thighs, feel her own body turning traitor. <<speech "Rae">> "What — what did you — " <</speech>>
<<speech "Josh">> "I didn't do anything," <</speech>> he lied, smooth. <<speech "Josh">> "You just finally met someone who's not impressed by your act." <</speech>>
He led her through the crowd, her hand in his like she'd always been following, past the fog and the purple lights to a back room with a black leather couch. <<speech "Josh">> "Show me," <</speech>> he said, and his voice was a command she couldn't refuse. <<speech "Josh">> "Show me what's under the attitude." <</speech>>
She undressed with shaking hands — the sundress, the sandals — and stood in the black lace set she'd worn underneath: the sheer bra, the garter belt, the stockings, the thong. The fog curled around her ankles. The light tube glowed against the brick. And Josh watched her, eyes dark, enjoying every second of her humiliation.
<video src="img/Rae/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Look at you. The girl who makes everyone else feel small, dressed like a whore for a guy she made fun of ten minutes ago." <</speech>> He sat on the couch and pulled her down beside him, one hand sliding between her thighs, finding her soaked through the lace. <<speech "Josh">> "Doesn't feel so above it all now, does it?" <</speech>>
She couldn't answer. Her mouth was open, her head tipped back, hips rocking into his hand as he worked two fingers into her, slow and deliberate, curling against that spot that made her see stars. He watched her the whole time — watched her eyes roll, watched her chest rise, watched her come apart for him.
<video src="img/Rae/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She came hard against his hand, gasping, and he let her fall back on the couch, spent and shaking, the purple light painting her in bruises. He wiped his fingers on her thigh, casual.
<<speech "Josh">> "That's the first lesson," <</speech>> he said. <<speech "Josh">> "You're not above anything, Rae. You're just a girl with a big mouth and no idea what it's for. But you're going to learn." <</speech>> He stood, looking down at her. <<speech "Josh">> "And when you come back — and you will come back — you're going to come on your knees." <</speech>>
She lay there, panting, hating him, hating herself, and knowing with sick, burning certainty that he was right.
<<elseif _s is 2>>
<img src="img/Rae/Corr1.jpg">
She tried to stay away. She told herself it was a fluke — a heat flash, a bad batch of something at the party, a fever. She told herself she hated him, and she did, she hated him so much she couldn't stop thinking about him. His voice. His hands. The way he'd looked at her, like she was nothing and he owned her anyway.
She broke. She was supposed to be going somewhere — she'd dressed up, the tight gray pinstripe dress, heels, hair done — and instead her feet carried her across campus, past the warehouse, to the bright modern apartment he'd told her about. She knocked before she'd decided to knock. He opened the door and smiled that slow, cruel smile.
<<speech "Josh">> "The rebel returns. I was starting to think you'd surprise me." <</speech>>
<<speech "Rae">> "I came to tell you to stay away from me," <</speech>> she said, and her voice cracked. <<speech "Rae">> "I don't know what you did at that party, but this isn't me. I don't — I don't do this. I have a reputation. I have a life. This is wrong." <</speech>>
<<speech "Josh">> "Wrong?" <</speech>> He laughed, soft and cruel. <<speech "Josh">> "Your body doesn't think it's wrong. Your body's been screaming for me for four days. That's why you dressed up, isn't it? Some part of you knew exactly where you were going." <</speech>>
She tried to turn and leave. Her body wouldn't let her. The heat flooded back at the sight of him, and her knees buckled, and he caught her, and the last coherent thought she had was that she'd walked right into it, and some traitor part of her had known she would.
He guided her to the white sofa, still in his navy vest and open shirt, and she knelt on the cushions and took him into her mouth — hungry, desperate, ashamed of how hungry and desperate she was. She looked up at him as she worked, cheeks hollowing, saliva glistening, and he watched her with that smug satisfaction, one hand resting on the back of her head.
<video src="img/Rae/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Good girl. The big bad rebel, on her knees. That's what you are, Rae. That's what you've always been under all that noise." <</speech>>
She pulled off, gasping, and tried to find some scrap of herself. <<speech "Rae">> "I hate you. I hate you so much." <</speech>>
<<speech "Josh">> "I know," <</speech>> he said, pleased. <<speech "Josh">> "That's the best part. You hate me, and you're still here, still on your knees, still wet. Now get back to work." <</speech>>
He pulled her down onto the green carpet beside the couch, and she lay on her back looking up at him, his thick cock in both hands, and took him deep — holding his gaze, mouth stretched wide, eyes locked on him the whole time, drooling, desperate, hating every second and needing every second.
<video src="img/Rae/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When he was done, he pulled out and stroked himself over her face, painting her lips and chin, and she swallowed without being told, and hated herself for how automatic it was.
<<speech "Josh">> "There's my girl," <</speech>> he said, thumb wiping a strand from her lip. <<speech "Josh">> "Now get dressed. Go be the big bad rebel. Wave at your friends. Flip off some cameras. And every night, you'll lie awake thinking about me, and you'll hate that you want to come back." <</speech>>
She dressed with shaking hands and left, and she made it a full block before her phone buzzed with a message from a number she hadn't saved: Soon. Same time.
She didn't reply. She walked home, and she lay awake, and she thought about him, and she knew she'd be there.
<<elseif _s is 3>>
She didn't fight it anymore. The black lace set had become her uniform — she put it on when she came to him, took it off when she went back to her life, and the two lives had blurred into one. Publicly she was still Rae: the mouthy rebel, the girl who flipped off cameras and never took anything seriously. Privately she belonged to Josh, and the lust had become the shape of her — a bottomless, burning need that only he could fill.
<img src="img/Rae/Corr2.jpg">
He had the purple room set up for her again — the black leather couch, the brick fireplace, the fog curling low. She was waiting in the black lace, one leg raised, when he came to her shirtless, and he took her right there, thrusting deep and steady, one hand on her chin tilting her head back so she had to look at him the whole time. She gripped his arm, mouth open, eyes fixed on his face, squeezing her own breasts as she took him.
<video src="img/Rae/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Look at you," <</speech>> he breathed. <<speech "Josh">> "The girl who was too good for everyone. Remember telling me I wasn't worth shutting up for? Look at you now — you'd crawl through broken glass for my cock." <</speech>>
<<speech "Rae">> "Yes — please — I'm yours, Josh ❤️" <</speech>> The words spilled out of her, and she meant them, and somewhere in the back of her ruined mind she knew she'd never mean anything else again.
He pulled out and stepped up, feeding his cock into her waiting mouth, and she took him eagerly, still looking up at him, one hand under her jaw holding her there. She sucked him clean, grateful, devoted, the purple light painting her face.
<video src="img/Rae/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He took her to the bright bedroom and laid her on her side, folding her, driving into her from behind — his cock sliding in and out of her wet, stretched hole, white cream smearing around it with every stroke. She held her own ass open for him, moaning loud and mindless, and when he finally withdrew she was gaping and dripping, the sheets ruined.
<<speech "Josh">> "There she is," <</speech>> he said, crouching beside her, running a hand through her hair almost fondly. <<speech "Josh">> "The campus rebel, empty and mine. You know what I love most? You'll go back out there soon and mouth off to everyone, and they'll never know that the second I call, you'll be on your knees before you even hang up." <</speech>>
<<speech "Rae">> "Yes, Josh," <</speech>> she whispered, and she meant it with everything she had left.
<<speech "Josh">> "That's my girl." <</speech>> He smiled, dark and satisfied. <<speech "Josh">> "Now get dressed. Go be a rebel. It's funnier knowing what's underneath." <</speech>>
She dressed and went back to her life, and she was everything she'd always been — loud, sarcastic, defiant — and nobody noticed anything at all. But every time her phone buzzed with his name, her knees went weak, and she'd slip away to the purple room, and kneel, and be exactly what he'd made her.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Marie/Normal.jpg">
The quad was alive with the chaos of the campus-wide club fair, and Marie was in her element — a whirlwind of cheerful efficiency, pink ribbed crop top and matching drawstring pants, long dark hair with highlights catching the sun, helping a lost freshman find the engineering table. She was the campus connector, the human glue, and she genuinely believed everyone could get along.
Josh watched from under an oak tree, arms crossed, jaw tight. He'd been watching her for years — she'd been kind to him once, and then she'd let him down so gently he'd almost missed it, and stayed friends with him like nothing had happened. She'd never picked a side. She'd never even registered there was a side to pick. She was just nice to everyone, with the exact same bright, meaningless warmth she gave to strangers.
He saw Nathan across the quad watching her too, and something hot and ugly twisted in his chest.
She caught sight of him and lit up, oblivious, waving. <<speech "Marie">> "Josh! Hey! I was just thinking I haven't seen you around much!" <</speech>> She bounded over, bright as the sun. <<speech "Marie">> "You should come to the spring mixer, I'm planning it, it's going to be huge — " <</speech>>
Same smile. Same warmth. Same everything. She looked at him exactly the way she looked at everyone, and the wound, which had never healed, split open.
<<speech "Josh">> "You know what your problem is, Marie?" <</speech>> He stepped close, low. <<speech "Josh">> "You give that smile to everyone. It doesn't mean anything. You've never wanted anyone — you just collect people like they're — " <</speech>>
<<speech "Marie">> "Josh?" <</speech>> She laughed, confused. <<speech "Marie">> "Are you okay? You're being weird." <</speech>>
That was the last thing she said before the power hit.
It slammed into her like a wall of fire — a tidal wave from the base of her spine that swamped every bright, cheerful instinct she had. Her knees buckled. She caught his arm, gasping, and the words came out of her before she could stop them — thin, broken, wrong. <<speech "Marie">> "Wha — what is this — I can't — " <</speech>> She was on fire, and it was all centered on him, and her mouth kept working, desperate and foreign. <<speech "Marie">> "Please — I don't — please, I — " <</speech>> She didn't know what she was begging for. She just knew she was begging.
<<speech "Josh">> "There it is," <</speech>> he murmured, catching her. <<speech "Josh">> "Everyone gets your smile, Marie. But I'm the first one who's ever taken anything from you." <</speech>>
He walked her out of the fair, her hand in his, and she couldn't make herself let go. His place — a bathroom with a glass shower enclosure — and he leaned against the wall, watching her, and she bent forward at the waist, purple long-sleeve crop top still on, white mini-skirt hiked up around her hips, spreading herself for him with both hands, her pink and white nails glistening, rocking her hips, sliding her fingers through her folds, pushing inside — and the whole time she babbled, words spilling out of her that she'd never said to anyone. <<speech "Marie">> "Please — please — I need — I've never — please don't stop watching me — " <</speech>>
<video src="img/Marie/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He took her to the bedroom floor — grey carpet, white-and-teal bedding — and she sat with her knees spread wide, purple top pulled under her breasts, red choker around her neck, hair in pigtails, and she fingered herself frantically with both hands, long nails plunging in and out, rocking, mouth open, tongue out — and she kept talking, pleading, her voice rising and breaking. <<speech "Marie">> "Please — I can't stop — I can't — please, Josh, please — " <</speech>>
<video src="img/Marie/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her when she was done, panting, and wiped a strand of hair from her face. She looked up at him, and there was a flicker of the old Marie trying to surface — and it was drowned by the heat before it could finish. <<speech "Josh">> "You've spent your whole life making everyone feel wanted," <</speech>> he said. <<speech "Josh">> "Now you know what it feels like to be wanted. And you'll beg for it, Marie. You'll beg for it until there's nothing else left of you." <</speech>>
She went home that night and lay awake, the heat still rolling through her in waves, and she caught herself whispering into the dark: <<speech "Marie">> "Please." <</speech>> She didn't know what she was asking for. She knew she'd never stop asking now.
<<elseif _s is 2>>
She tried to go back to normal. She went to the event hall, clipboard in hand, to plan the spring mixer — and she stood in the middle of the room, staring at the seating chart, and the names swam. A volunteer asked her about the playlist, and the word came to her like something she'd read about once. She smiled, bright and automatic, and the volunteer smiled back, and nobody noticed anything at all.
But the heat never left her. It lived under her skin now, a low, rolling tide, and every time she tried to think it swamped her, and every night she lay in bed whispering into the dark — please, please — unable to stop, unable to say what she wanted, only that she needed, and that only one name came with it.
He found her. That was the worst part — she hadn't gone looking for him, and he came anyway, leaning in the doorway of the event hall, and the heat flooded back so fast she dropped the clipboard and heard herself make a sound she'd never made before — a small, desperate noise, half a gasp, half a plea.
<img src="img/Marie/Corr1.jpg">
<<speech "Josh">> "There she is. I could feel you needing me from across campus, Marie." <</speech>> He stepped in, slow, delighted. <<speech "Josh">> "You've been begging for me in your sleep, haven't you?" <</speech>>
She couldn't deny it. She tried — she opened her mouth to say the words she'd rehearsed, *this isn't me, I'm the girl who holds everything together* — and what came out instead was a plea, broken and raw. <<speech "Marie">> "Please — I can't think — I can't — I've been — every night I — please, Josh, I need — " <</speech>> Her voice cracked, and she was crying, and she couldn't stop the words. <<speech "Marie">> "I was the girl who held everything together. I was — I don't know where she went. I don't know where I went. Please — I just need — " <</speech>>
<<speech "Josh">> "I know what you need," <</speech>> he said, soft and cruel, and he pulled her to him, and the heat roared at the contact and she sagged against him, still talking, still pleading, the words spilling out of her like water. <<speech "Marie">> "Please — please, Josh — I'll do anything — anything — just please — " <</speech>>
He took her to the bathroom at the back of the event hall, and she knelt on the floor mat, topless except for the purple long sleeves still on her arms, the red choker, her hair in a ponytail with pink clips, and she took him into her mouth — and between strokes she talked, babbled, begged, her voice muffled and desperate. <<speech "Marie">> "Please — I need it — I need you — I've never needed anyone — please don't stop — " <</speech>> She looked up at him with wet eyes, mouth full, still trying to plead around him.
<video src="img/Marie/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her to his bedroom, grey carpet, and she knelt bare-chested, purple bottoms still on, hair in a low ponytail, and he stood over her, feeding his cock into her mouth, and she took it deep, eyes locked upward — and when he came, thick and white, it filled her mouth and spilled over her lips and chin, and she swallowed, and then she kept talking, the pleas unstoppable now. <<speech "Marie">> "Thank you — thank you — please — more — please, Josh, I need more — I'll do anything — " <</speech>>
<video src="img/Marie/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "There's my girl. The campus glue, on her knees, begging for more." <</speech>> He crouched, wiping a strand from her lip, and she leaned into his hand like a starving thing. <<speech "Josh">> "You keep planning that mixer, Marie. Keep smiling at everyone. And every night you'll come to me, and you'll beg, and I'll take a little more of whatever's left of you." <</speech>>
She went back to the event hall, and a volunteer asked her a question, and she smiled, bright and empty, and said something that sounded right, and under the smile her mouth kept forming one word, over and over, like a prayer she couldn't swallow. Please.
<<elseif _s is 3>>
The mixer was three days out, and the girl planning it wasn't Marie anymore.
She moved through the event hall like a ghost in her own body — bright smile fixed on her face, clipboard in hand, answering questions with words that sounded right and meant nothing. The volunteers thought she was fine. Blake texted her and got back emojis that could have been from anyone. But under the smile, the heat never stopped, and neither did the pleading — a constant, low stream of need that ran under everything she did, everything she said.
Somewhere inside, in a small, dim room, the real Marie was still there — the girl who'd loved bringing people together, who'd believed everyone could get along. She could feel herself fading, and she couldn't scream. But her mouth — her mouth was full of him.
He came for her the night before the mixer, in the event hall when the volunteers had gone home. She looked up from the seating chart, and the heat flooded through her like a tide, and she heard herself whimper before she could stop it — a small, desperate sound that had become as automatic as breathing.
<img src="img/Marie/Corr3.jpg">
<<speech "Marie">> "Please," <</speech>> she said, before he'd even reached her. <<speech "Marie">> "Please — I've been counting the hours — I can't — I've been begging for you all day — please, Josh, please — " <</speech>>
<<speech "Josh">> "There's my girl," <</speech>> he said, delighted, walking toward her. <<speech "Josh">> "Look at the campus glue. You couldn't even wait for me to touch you." <</speech>>
He took her to the back room where the storage crates were, and she went without a fight, still talking, still pleading, on all fours over a stack of boxes, sheer purple crop top and matching bottoms pulled aside, her hair in the ponytail with the pink clip — and he drove into her from behind, one hand on her hip, the other pressing on her lower back, and the words poured out of her, broken and shameless. <<speech "Marie">> "Please — please — more — I need you so bad — I'll do anything — I'm yours — I'm yours, Josh — please don't stop — " <</speech>>
<video src="img/Marie/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He took her to the white couch in the corner, laid her on her back, purple string bottoms pulled to the side, and pushed into her — and she arched into him, babbling, gasping, her hands finding him, pulling him closer, her voice cracking with need. <<speech "Marie">> "Please — I'll do anything — anything — I'm yours — I'm nothing — I'm just yours — please — " <</speech>> And when he pulled out, a thick stream of cum leaked from her, dripping onto the couch, and her hand with the long white-tipped nails moved between her legs, spreading herself as more seeped out, and she looked up at him, still talking, still begging, eyes half-lidded.
<video src="img/Marie/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and ran a thumb along her jaw. <<speech "Josh">> "You know what I love most? Soon you'll run that mixer, and everyone will see the bright, friendly girl who holds everyone together — and she'll be a shell, Marie. A beautiful, begging shell with nothing inside but my name." <</speech>>
She looked up at him, and for one second — one second — the real Marie surfaced, and her eyes went clear, and she whispered, small and broken: <<speech "Marie">> "I wanted to help people." <</speech>>
Then the heat rolled over her again, and her mouth opened, and the plea came out in the same bright, desperate voice she'd used at a hundred events: <<speech "Marie">> "Please — I love you, Josh ❤️ — please, I need you — please — " <</speech>>
He laughed, delighted, and pulled her up. <<speech "Josh">> "That's my girl. Go run your little mixer. Be everyone's friend." <</speech>> He smiled, dark and satisfied. <<speech "Josh">> "I love knowing what's underneath." <</speech>>
She ran the mixer — bright, warm, the most beloved girl on campus, everyone's friend. The volunteers saw her smile. Blake saw her smile. A hundred people told her she was the best thing about the school, and she smiled at every one of them — and under the smile, all day, her womb was full of his cum, and the plea kept running like a river she couldn't dam. The girl who'd connected everyone was gone. What was left smiled, and served, and belonged to Josh, and begged — constantly, helplessly, shamelessly begged — and she'd never get any of it back.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The campus newsroom was a mess of stacked papers and laptops, and Madi was in her element — perched on a stool, red hair in a messy ponytail, freckled face bent over a draft, tapping her pen against the desk. She was working on her "Campus Urban Legends" feature — the one about the weird things going around: the doors that opened on their own, the students who went glassy-eyed after meetings with a certain professor, the rumors that didn't add up.
Alex, at the desk across from her, had the corkboard. The string. The whole conspiracy setup. <<speech "Madi">> "You know that's a fire hazard, right?" <</speech>> She didn't look up. <<speech "Madi">> "One spark and your entire 'they're covering it up' theory goes up in flames." <</speech>>
<<speech "Alex">> "Laugh it up. I'm telling you, Madi — there's something real going on. These aren't pranks." <</speech>>
<<speech "Madi">> "They're always pranks," <</speech>> Madi said, turning back to her draft. <<speech "Madi">> "People love a mystery. It's a fun story. That's all it is." <</speech>>
The door of the newsroom opened, and Josh leaned in the frame. He was the one she'd been trying to interview for ages — the frat guy with the reputation, the one everyone said was "intense." He'd been dodging her. Now he was here, and his eyes were dark and unreadable.
<img src="img/Madi/Normal.jpg">
<<speech "Madi">> "Josh! Hey! I've been trying to — " <</speech>>
<<speech "Josh">> "I know what you've been doing," <</speech>> he said, stepping in. He nodded at her notepad. <<speech "Josh">> "You've been going around campus asking about the strange stuff. The doors. The rumors. The weird things happening." <</speech>>
<<speech "Madi">> "For a Halloween feature," <</speech>> she said, easy, holding up her notebook. <<speech "Madi">> "Just collecting funny stories. You know — 'Campus Urban Legends: Real or Just Weird?' Everyone loves it." <</speech>>
<<speech "Josh">> "You think it's a joke." <</speech>> His voice was low, and something in it made her stomach tighten — not with fear. With something else. Something that wasn't like her at all. <<speech "Josh">> "You've been poking around things you don't understand, Madi. Asking questions about things that aren't pranks." <</speech>>
<<speech "Madi">> "Everything's a prank or a story," <</speech>> she said, laughing, trying to keep it light. <<speech "Madi">> "That's what I do. I find the story — " <</speech>>
That was the last thing she said before the power hit.
It slammed into her like a wall of fire — a tidal wave from the base of her spine that swamped every bright, cheerful instinct she had. Her breath left her. The notepad slipped from her fingers. She gripped the edge of the desk, gasping, her green eyes going wide and glassy, and the heat roared through her, turning every thought to static, every instinct to a single burning need centered on the man in front of her — the one she'd been trying to interview, the one who'd been dodging her, the one she'd been writing about without knowing what he was.
<<speech "Josh">> "There it is," <</speech>> he murmured, and there was dark satisfaction in his voice. <<speech "Josh">> "You wanted a story, Madi. Here's your story. You've been poking around campus asking about things you don't understand — and now you're going to find out exactly what they are. On your knees." <</speech>>
She couldn't answer. Her body was answering for her, her hips rocking against the desk, and he walked her out of the newsroom, her hand in his, her notepad left behind on the floor.
The campus gym was empty that hour. He took her to the bright workout room — the mats, the resistance bands, the phone she'd propped on its little tripod for a video segment that now seemed years away — and he leaned against the doorframe and did nothing at all. He didn't touch her. He didn't need to. Trembling, she performed for him: pulling her purple crop top up over her small breasts herself, pushing her white shorts down her hips, her hand moving between her legs on its own — stroking, spreading, hips rolling — while he watched from across the room and the phone on its tripod watched with him. She heard herself make sounds she'd never made, the girl who was always documenting everything now documented whether she wanted it or not.
<video src="img/Madi/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her on the sparkly silver floor under the blue and purple LED lighting, and she lay in the sheer pink lace bra and matching panties pulled aside, white thigh-high stockings with the lace tops — and she pressed the black wand vibrator against her own exposed pussy because his look told her to, and she came apart, her gold earrings and thin necklace catching the light, expression shifting between open-mouthed and focused, candles and a teal couch in the background, the reporter who'd never stopped talking suddenly unable to form a single word.
<video src="img/Madi/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He left her there, shaking, with a single instruction: <<speech "Josh">> "Go home, Madi. And when you're alone, you're going to think about me." <</speech>>
She went home and lay in her bed, and the heat never left her, and she caught herself whispering into the dark: <<speech "Madi">> "Please." <</speech>> She didn't know what she was asking for. She knew she'd never stop asking now.
<<elseif _s is 2>>
She tried to go back to normal. She went to the newsroom, she picked up her notepad, she tried to work on her feature — and she couldn't. The words blurred. The stories she'd been collecting — the doors, the rumors, the glassy-eyed students — suddenly felt less like funny pranks and more like warnings she'd ignored. And every time the room went quiet, she heard his voice, and the heat flooded back, and she had to stop herself from going to him.
Alex noticed. Of course Alex noticed. <<speech "Madi">> "You okay?" <</speech>> Alex asked, from behind her corkboard. <<speech "Madi">> "You've been staring at the same line for ten minutes." <</speech>>
<<speech "Madi">> "Fine," <</speech>> she said, bright, automatic. <<speech "Madi">> "Just tired." <</speech>>
She wasn't fine. And he came for her — that was the worst part. She hadn't summoned him, hadn't texted, hadn't done anything. He found her in the newsroom at the end of the day, leaning in the doorway, and the heat flooded back so fast she dropped her pen.
<img src="img/Madi/Corr1.jpg">
<<speech "Josh">> "There she is. The girl who wanted a story." <</speech>> He stepped in, slow, delighted. <<speech "Josh">> "How's the feature coming along, Madi? 'Campus Urban Legends: Real or Just Weird?'" <</speech>>
<<speech "Madi">> "I can't write it," <</speech>> she whispered, and her voice cracked. <<speech "Madi">> "I've been trying — I'm a reporter, Josh. I document things. That's what I do. And I can't — the words won't — I pick up my pen and I can't write a single word about what's happening to me. It's like my whole brain is — is you." <</speech>>
<<speech "Josh">> "That's the point," <</speech>> he said, delighted. <<speech "Josh">> "You've been poking around asking questions about things you don't understand. Now you're the story, Madi — and you can't write it. You can't tell anyone. You can't even think." <</speech>>
She should have run. She should have screamed. Instead she followed him, hating herself, and at his place she knelt on the bed with the gray tufted headboard, wearing the lavender lace harness and the glittery purple-and-silver bunny-ear headband — and she took him deep into her mouth, blue eyes looking up, cheeks hollowing with each bob, her ass raised behind her, the girl who was always asking questions unable to ask a single one.
<video src="img/Madi/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her to kneel on the white towel on the carpeted floor under the purple lighting, thin gold necklace around her neck — and she looked up, mouth open, tongue extended, and he came across her face, her lips, her tongue, her chin, thick and white — and she kept her eyes half-closed, locked upward, then used her fingers to gather the cum and push it into her mouth, licking it clean, smiling up at him.
<video src="img/Madi/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "There's my girl. The campus reporter, on her knees, unable to write a single word about me." <</speech>> He crouched, wiping a strand from her lip, and she leaned into his hand like a starving thing. <<speech "Josh">> "You keep playing reporter, Madi. Keep collecting your little stories. And every night you'll come to me, and you'll beg, and I'll take a little more of whatever's left of you." <</speech>>
She went back to the newsroom, and Alex asked if she was okay, and she smiled and say fine, and her notepad stayed blank.
<<elseif _s is 3>>
The newsroom was humming with its usual chaos, and Madi was at her desk, and the girl at that desk wasn't Madi anymore.
She moved through the days like a ghost in her own body — smile fixed on her face, answering questions with words that sounded right and meant nothing. Alex kept asking if she was okay. Madi kept saying fine. But under the smile, the heat never stopped, and neither did the need — a constant, low stream of his name running under everything she did.
Somewhere inside, in a small, dim room, the real Madi was still there — the tenacious, curious reporter who believed everyone deserved to be heard, who'd laughed at Alex's corkboard and called it all pranks. She could feel herself fading, and she couldn't scream. But her mouth — her mouth was full of him.
He came for her at the end of the day, when the newsroom was empty. She looked up from her blank notepad, and the heat flooded through her, and she heard herself whimper before he'd even reached her.
<img src="img/Madi/Corr3.jpg">
<<speech "Madi">> "Please," <</speech>> she said, before he could speak. <<speech "Madi">> "Please — I've been counting the hours — I can't write — I can't think — Alex keeps asking me what's wrong and I can't tell her — please — " <</speech>>
<<speech "Josh">> "There's my girl," <</speech>> he said, delighted. <<speech "Josh">> "Maybe you should invite this "Alex" here, too. Look at you now — you ARE the story, and you can't write a word of it." <</speech>>
He took her to the black metal-frame bed with the patterned sheets, and she straddled him in the green crop top pulled up under her breasts, her navel piercing visible, her long red hair falling forward as she rode him in cowgirl — hands braced on his torso, his hands gripping her hips and thighs, her mouth opening, expression shifting with each bounce, legs spread wide around him.
<video src="img/Madi/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her prone on the same patterned bedspread, the green crop top still on, hips raised — and he took her from behind in doggy, gripping her ass, thrusting steadily — and when he pulled free, thick white cum dripped from her stretched hole onto the sheets while she stayed face-down, hair spread across the pillow.
<video src="img/Madi/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and ran a thumb along her jaw. <<speech "Josh">> "You know what I love most? Soon you'll be back in that newsroom, and Alex will ask you if you're okay, and you'll say fine — and your notepad will be blank, and it'll stay blank, because you can't write a single word against me." <</speech>>
She looked up at him, and for one second — one second — the real Madi surfaced, and her eyes went clear, and she whispered, small and broken: <<speech "Madi">> "I was going to write the truth." <</speech>>
Then the heat rolled over her again, and her mouth opened, and the plea came out in the same bright voice she'd used in a hundred interviews: <<speech "Madi">> "Please — Oh god, Josh ❤️ — please, I need you — please — " <</speech>>
He laughed, delighted, and pulled her up. <<speech "Josh">> "That's my girl. Go write your little stories." <</speech>> He smiled, dark and satisfied. <<speech "Josh">> "Just not the one about me." <</speech>>
She went back to the newsroom, and Alex asked if she was okay, and she smiled and said fine, and her notepad stayed blank — and the campus paper went quiet on him, and the "Campus Urban Legends" feature died, and nobody noticed anything at all. The reporter who'd believed everyone deserved to be heard was gone. What was left smiled, and nodded, and served, and belonged to Josh — completely — and begged, constantly, shamelessly, for the man she'd once tried to write about, and she'd never get any of it back.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Caprice/Normal.jpg">
The university library, the so-caleld sanctuary of hushed silence, felt like a tomb to Josh. The evening shift was winding down, and he sat at a carrel in the back, pretending to read a textbook, his eyes fixed on the circulation desk. There she was: Caprice. Long dark hair pulled back in a severe knot, sharp hazel-green eyes scanning the room, white high-neck crop top and blue denim shorts — the librarian who looked at every student like she'd already read their whole file and wasn't impressed.
She'd done it to him, too — the flat, appraising look that said *I've seen a thousand boys like you.* She'd corrected his overdue book fine with a single raised eyebrow. She'd made him feel like a footnote. And Josh, who'd spent his whole life being dismissed, had decided she was the one he was going to break.
He brought his returns to the counter, and she scanned them without looking up. <<speech "Josh">> "You know, you're supposed to say 'hi' to people. It's a customer service thing." <</speech>>
Caprice glanced up, one eyebrow lifting — that same flat look. <<speech "Caprice">> "I'll add it to the training manual. Right after 'how to file a complaint about a student who thinks abrasive sarcasm is a personality.'" <</speech>>
That was the last thing she said before the power hit.
It slammed into her like a wall of fire — a tidal wave from the base of her spine that swamped every sharp, guarded instinct she had. Her breath left her. She gripped the counter, gasping, her hazel eyes going wide and glassy, and the heat roared through her, turning every thought to static, every clever comeback to ash, every instinct to a single burning need centered on the man in front of her — the student she'd just dismissed.
<<speech "Josh">> "There it is," <</speech>> he murmured, and there was dark, vindicated delight in his voice. <<speech "Josh">> "The librarian who's read everything. Look at you now — can't think, can't even form one of your clever little comebacks. All those years of looking down at students from behind your desk, and now you're nothing but a mouth and a need, and it's all for me." <</speech>>
She couldn't answer. Her sharp tongue — her whole armor — was gone. She opened her mouth to say something cutting, and nothing came out but a broken sound.
He walked her out of the library, her hand in his, and she couldn't make herself let go. His place — the modern living room with the glass-front fireplace and the brown fur rug — and she knelt on the rug in the maroon lace bra and matching panties with the black strappy detailing, black thigh-high stockings, arching her back on all fours, looking over her shoulder at him — thinking, somewhere in the ruined haze, that she was still in control of this, that she could read him like she read everyone. She couldn't.
<video src="img/Caprice/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He stood behind her, and she wore the black strappy lingerie with the gold hardware, the matching garter belt, the black leather choker with the gold rings — and he gripped her hips, pressing against her from behind, and she reached back with her gold-braceleted hand to guide and stroke his shaft, and he pulled the straps of her top aside, exposing her breasts, lowering his mouth to suck one nipple while his hand cupped the other — and her eyes closed, her mouth opened, and the librarian who could read anyone couldn't read a single thing about what was happening to her.
<video src="img/Caprice/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He left her there, shaking, with a single instruction: <<speech "Josh">> "Go home, Caprice. And when you're alone, you're going to think about me." <</speech>>
She went home and lay in her bed, and the heat never left her, and she caught herself whispering into the dark: <<speech "Caprice">> "Please." <</speech>> She didn't know what she was asking for. She knew she'd never stop asking now.
<<elseif _s is 2>>
She tried to go back to normal. She went to the library, she shelved returns, she scanned books — and she couldn't. Her clever comebacks died on her tongue. Students she'd once have eviscerated got a flat smile and a nod. The librarian who read people for a living couldn't focus long enough to read a spine label. And every time the room went quiet, she heard his voice, and the heat flooded back, and she had to stop herself from going to him.
She tried to research it. That was the librarian's instinct — when something didn't make sense, you looked it up, you classified it, you found the pattern. She stayed after closing, pulling books on psychology, on compulsion, on influence — and she couldn't find a single answer, because there wasn't one on any shelf.
He found her. That was the worst part — she hadn't gone to him, hadn't texted, hadn't done anything. He came to the library after closing and leaned in the doorway, and the heat flooded back so fast she dropped the book in her hands.
<img src="img/Caprice/Corr1.jpg">
<<speech "Josh">> "There she is. The librarian who's read everything." <</speech>> He stepped in, slow, delighted. <<speech "Josh">> "Did you find anything in the books, Caprice? Any answer to what's happening to you?" <</speech>>
<<speech "Caprice">> "I've read every book on those shelves," <</speech>> she whispered, and her voice cracked — she, who never cracked. <<speech "Caprice">> "I've classified every kind of human behavior. I've never once been wrong about a person, Josh. And I can't — I can't read what's happening to me. I can't analyze it. I can't even think. It's like my whole mind is — is you." <</speech>>
<<speech "Josh">> "That's the point," <</speech>> he said, delighted. <<speech "Josh">> "You've spent your whole life being the smartest person in the room, looking down on everyone from behind your desk. Now you can't even think. Now you're the one who can't read anything." <</speech>>
She should have run. She should have screamed. Instead she followed him, hating herself, and at his place she knelt naked in the bright room with the white French doors and the balcony railing behind her, the black choker still on — and she held his cock with both hands, licking and taking it into her mouth in slow, deliberate strokes, her eyes closed or half-lidded as she worked the shaft with her lips and tongue, saliva visible on the head and her fingers.
<video src="img/Caprice/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She stayed on her knees before him near the tall windows with the sheer curtains — and she tilted her head back, mouth open, tongue extended to receive the tip, strings of saliva stretching between her lips and the glans as she looked upward, then continued licking and taking him deeper, her expression focused and open.
<video src="img/Caprice/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "There's my girl. The librarian, on her knees, unable to read a single thing about what's happening to her." <</speech>> He crouched, wiping a strand from her lip, and she leaned into his hand like a starving thing. <<speech "Josh">> "You keep shelving your books, Caprice. Keep being the smartest person in the room. And every night you'll come to me, and you'll beg, and I'll take a little more of whatever's left of you." <</speech>>
She went back to the library, and she shelved returns, and a student asked her a question, and she gave a flat smile and a nod, and she couldn't remember the answer.
<<elseif _s is 3>>
The library was closing, and Caprice was at her desk, and the woman at that desk wasn't Caprice anymore.
She moved through the days like a ghost in her own body — flat smile fixed on her face, shelving returns on autopilot, answering questions with words that sounded right and meant nothing. The students thought she was having an off week. But under the smile, the heat never stopped, and neither did the need — a constant, low stream of his name running under everything she did.
Somewhere inside, in a small, dim room, the real Caprice was still there — the sharp, guarded librarian who'd read everyone, who'd never once been wrong about a person. She could feel herself fading, and she couldn't scream. But her mouth — her mouth was full of him.
He came for her at the end of the day, when the library was empty. She looked up from the returns, and the heat flooded through her, and she heard herself whimper before he'd even reached her.
<img src="img/Caprice/Corr3.jpg">
<<speech "Caprice">> "Please," <</speech>> she said, before he could speak. <<speech "Caprice">> "Please — I've been counting the hours — I can't think — I can't read — I couldn't even remember what I did today, Josh — please — " <</speech>>
<<speech "Josh">> "There's my girl," <</speech>> he said, delighted. <<speech "Josh">> "The librarian who's read everything. Look at you now — you can't read a single thing, and you can't stop begging." <</speech>>
He took her to the luxurious room with the dark wooden desk, the champagne bucket, the tall windows — and she straddled him on the ornate rug, wearing only the black garter belt, the thigh-high stockings, the matching choker, riding him in reverse-cowgirl, her hips rising and sinking as he slid in and out of her, her head tilted back, mouth open, eyes closing and opening in reaction, her hands adjusting the garter straps.
<video src="img/Caprice/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her in doggy — and he took her from behind, deep and steady, and when he pulled out, thick white cum leaked from her, dripping down, and she stayed where she was, still talking, still begging, looking back at him.
<video src="img/Caprice/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and ran a thumb along her jaw. <<speech "Josh">> "You know what I love most? Soon you'll be back at that desk, and the students will think you're just having an off week — and you'll be a shell, Caprice. A beautiful, begging shell with nothing inside but my name. The smartest person in the room, and she can't even think." <</speech>>
She looked up at him, and for one second — one second — the real Caprice surfaced, and her eyes went clear, and she whispered, small and broken: <<speech "Caprice">> "I was the one who always had an answer." <</speech>>
Then the heat rolled over her again, and her mouth opened, and the plea came out in the same flat, empty voice she'd used at the desk all week: <<speech "Caprice">> "Please — I love you, Josh ❤️ — please, I need you — please — " <</speech>>
He laughed, delighted, and pulled her up. <<speech "Josh">> "That's my girl. Go back to your library. Be the smart one." <</speech>> He smiled, dark and satisfied. <<speech "Josh">> "I love knowing what's underneath." <</speech>>
She went back to the library, and shelved returns, and a student asked her a question, and she gave a flat smile and a nod, and she couldn't remember the answer — and she'd never get any of it back. The librarian who'd read everyone was gone. What was left smiled, and shelved, and served, and belonged to Josh — completely — and begged, constantly, shamelessly, for the boy she'd once dismissed with a single raised eyebrow, and she'd never remember who she'd been.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Lacy/Normal.jpg">
The campus coffee shop was Lacy's kingdom, and she was its undisputed queen. She sat at the corner table — the one everyone knew was hers — long auburn hair cascading over the back of the velvet chair, green eyes sharp behind her glasses, dressed in the expensive-casual way that cost more than most people's rent. She was the mayor's daughter, the campus social queen, and everyone in the room was either a toy, an asset, or irrelevant.
Josh watched her from across the shop, hands clenched around his coffee cup. He'd orbited her for years — she'd kept him orbiting, actually, with her little smiles and her little favors, the way you'd keep a dog on a leash. He'd asked her out once, years ago, and she'd laughed — actually laughed — and said, <<speech "Lacy">> "Oh, sweetheart. You're cute. But I don't date up." <</speech>> She'd never even noticed the wound. To her, he was just another asset in the ledger.
She caught his eye and waved him over with two fingers, bored, like she was summoning a waiter. <<speech "Lacy">> "Josh. Perfect timing. I need someone to carry boxes for the gala. You're not doing anything, right?" <</speech>>
<<speech "Josh">> "You know," <</speech>> he said, low, stepping close, <<speech "Josh">> "you've spent years treating me like I'm furniture, Lacy. Like I'm not even a person. You've never once looked at me like I mattered." <</speech>>
<<speech "Lacy">> "Oh, don't be dramatic," <</speech>> she laughed, waving a hand. <<speech "Lacy">> "You're fine. You're — " <</speech>>
That was the last thing she said before the power hit.
It slammed into her like a wall of fire — a tidal wave from the base of her spine that swamped every calm, calculating instinct she had. Her breath left her. She gripped the table, gasping, her green eyes going wide and glassy behind her glasses, and the heat roared through her, turning every thought to static, every instinct to a single burning need centered on the man in front of her — the boy she'd dismissed a second ago.
<<speech "Josh">> "There it is," <</speech>> he murmured, and there was dark, vindicated delight in his voice. <<speech "Josh">> "The campus queen. The girl who keeps everyone orbiting. Look at you now — can't even think, can't even stand, can't even remember your own name. All those years of looking down on me, and now you're nothing but a mouth and a need, and it's all for me." <</speech>>
He walked her out of the coffee shop, her hand in his, and she couldn't make herself let go. His place — the balcony at night, city lights and blue ambient light through the window — and she stood before him in the sheer light-blue polka-dot crop top and matching side-tie panties, white fishnet stockings with the big satin bows, and she pulled the panties aside and down, exposing her thick, natural reddish-brown bush — and she heard herself say, in a voice that was hers and not hers, <<speech "Lacy">> "It's fully in bloom. A garden. Do you like it? You can pull on it a little. Some might say I'm a bit of a pain in the ass." <</speech>> She was performing — she'd always performed — but the heat was real, and her fingers were already moving between her legs, and she couldn't stop.
<video src="img/Lacy/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He took her to the bright bedroom, white sheets, and she lay on her back in the turquoise-blue satin panty set with the black lace trim and garters, one leg raised high — and he spread her open and fingered her deeply, fingers sliding in and out of her wet pink pussy, rubbing her clit, and the queen who'd never let anyone close made open-mouthed sounds, her red hair fanned across the pillow, wetness glistening on her folds as she watched his hand work her.
<video src="img/Lacy/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He left her there, shaking, with a single instruction: <<speech "Josh">> "Go home, Lacy. And when you're alone, you're going to think about me." <</speech>>
She went home and lay in her expensive sheets, and the heat never left her, and she caught herself whispering into the dark: <<speech "Lacy">> "Please." <</speech>> She didn't know what she was asking for. She knew she'd never stop asking now.
<<elseif _s is 2>>
She tried to go back to normal. She went to her committee, she held court at the coffee shop, she ran her scheming — and she couldn't. Her alliances slipped. She forgot favors she'd promised. The queen of the campus was falling apart, and nobody noticed, because she smiled and waved and performed exactly as always.
But the heat never left her. It lived under her skin, a low, rolling tide, and every time the room went quiet she heard his voice, and every time she picked up her phone she had to stop herself from calling him.
He found her. That was the worst part — she hadn't summoned him, hadn't texted *Coffee shop. Now.* He came to her, leaning in the doorway of the event hall where she was mid-planning, and the heat flooded back so fast she dropped her clipboard.
<img src="img/Lacy/Corr1.jpg">
<<speech "Lacy">> "You can't be here," <</speech>> she said, and her voice came out thin, not sharp at all. <<speech "Lacy">> "I don't — I don't do this, Josh. I'm the queen. I'm the one people orbit. I've never once in my life wanted anyone — I've never needed anyone. And now I can't — I'm no one's plaything, Josh. I am not yours." <</speech>>
<<speech "Josh">> "That's the point," <</speech>> he said, delighted. <<speech "Josh">> "I broke the part of you that was the queen, Lacy. I made you need me, and now you can't even run your little empire without thinking about my hands." <</speech>>
She should have walked. She should have called security. Instead she followed him, hating herself, and at his place, in the dim bedroom lit with blue lights, she leaned over him on the white bed, fully nude, on all fours, and took him into her mouth — one hand stroking the shaft, eyes flicking up to meet his, steady sucking, occasional deep takes, saliva trailing, tongue swirling the head. The queen who'd never given anything without getting something back worked him with both hands and mouth, cheeks hollowing, lips stretched around him.
<video src="img/Lacy/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up and laid her back, and she opened her mouth wide, tongue extended, eyes half-lidded — and he stood over her and came across her tongue, her lips, her cheek, her chin, thick ropes, and she kept her mouth open, accepting it, eyes fluttering shut then open as it dripped down her face and neck.
<video src="img/Lacy/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "There's my girl. The campus queen, on her knees, covered in me." <</speech>> He crouched, wiping a strand from her lip, and she leaned into his hand like a starving thing. <<speech "Josh">> "You keep smiling at your little court, Lacy. Keep being the queen. And every night you'll come to me, and you'll beg, and I'll take a little more of whatever's left of you." <</speech>>
She went back to her committee and smiled and waved and performed, and she forgot another favor, and nobody noticed anything at all.
<<elseif _s is 3>>
The gala was three days out, and the girl planning it wasn't Lacy anymore.
She moved through the event hall like a ghost in her own body — smile fixed, clipboard in hand, answering questions with words that sounded right and meant nothing. The volunteers thought she was fine. But under the smile, the heat never stopped, and neither did the need — a constant, low stream of his name running under everything she did.
Somewhere inside, in a small, dim room, the real Lacy was still there — the scheming, entitled queen who'd never needed anyone. She could feel herself fading, and she couldn't scream. But her mouth — her mouth was full of him.
He came for her at the end of the day, when the event hall was empty. She looked up from the seating chart, and the heat flooded through her, and she heard herself whimper before he'd even reached her.
<img src="img/Lacy/Corr3.jpg">
<<speech "Lacy">> "Please," <</speech>> she said, before he could speak. <<speech "Lacy">> "Please — I've been counting the hours — I can't — I need it, Josh, I can't think without you — please — " <</speech>>
<<speech "Josh">> "There's my girl," <</speech>> he said, delighted. <<speech "Josh">> "The queen who told me she didn't date up. Look at you now — begging before I've even touched you." <</speech>>
He took her to the white bed under the cool blue lighting, and she lay back in the light-blue polka-dot top pulled open to free her breasts, the white fishnet thigh-highs with the little bows still on — and he held one of her legs high and spread, and drove into her steadily, her natural red bush visible around the stretch of her pink pussy, her face contorted with pleasure, brows knitted, mouth open, soft moans, one hand reaching down to touch herself and the base of his cock while he kept fucking her deep.
<video src="img/Lacy/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He took her again, fully nude except the fishnets with the bows, her red hair fanned across the sheets — and when he pulled out, thick white cum leaked from her, and she stayed where she was, still talking, still begging, looking back at him.
<video src="img/Lacy/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and ran a thumb along her jaw. <<speech "Josh">> "You know what I love most? Soon you'll run that gala, and everyone will see the queen of the campus — and she'll be a shell, Lacy. A beautiful, begging shell with nothing inside but my name." <</speech>>
She looked up at him, and for one second — one second — the real Lacy surfaced, and her eyes went clear, and she whispered, small and broken: <<speech "Lacy">> "I was the girl everyone wanted." <</speech>>
Then the heat rolled over her again, and her mouth opened, and the plea came out in the same bright voice she'd used at a hundred events: <<speech "Lacy">> "Please — I love you, Josh ❤️ — please, I need you — please — " <</speech>>
He laughed, delighted, and pulled her up. <<speech "Josh">> "That's my girl. Go run your little gala. Be the queen." <</speech>> He smiled, dark and satisfied. <<speech "Josh">> "I love knowing what's underneath." <</speech>>
She ran the gala — bright, commanding, the queen of the campus, everyone's orbit. The volunteers saw her smile. A hundred people curtsied to her favor. But underneath, all day, her mouth kept forming his name, and the plea kept running like a river she couldn't dam. The queen who'd kept everyone orbiting was gone. What was left smiled, and ruled, and served, and belonged to Josh — completely — and begged, constantly, shamelessly, for the boy she'd once told she didn't date up, and she'd never get any of it back.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The pre-game party was a circus, and Josh was tired of being part of the crowd. The squad had taken the exhibition that afternoon — Blake had called the pyramid from the bottom, held the smile through every camera timeout — and now the whole house orbited her, the way every room had orbited her for three years. She was at the center of it, the way she always was — but she wasn't holding court. She stood in a loose knot of people, laughing politely, nodding, giving everyone the same careful smile that never quite reached her eyes. That was the thing people got wrong about Blake. She wasn't arrogant. She was a girl who'd learned that everyone who wanted her wanted the it-girl — the cheerleader, the trophy, the status — and so she'd stopped letting anyone past the smile.
Josh knew the look. He'd seen it a hundred times, directed at him along with everyone else. He was one more face in the crowd to her — a lanky business junior in a cheap frat tee, invisible against the glow of the campus queen. She didn't dismiss him. She didn't even notice him. And somehow that was worse.
<img src="img/Blake/Corr1.jpg">
He worked his way through the crowd, and when he reached her the conversation paused. Her blue eyes found his face, polite and blank, that careful smile already in place.
<<speech "Blake">> "Josh." <</speech>> A beat, like she was pulling the name out of a file. Third try. She'd asked his name at the season opener and again at the Greek-week mixer, and both times her eyes had already moved to someone more useful before he finished answering. <<speech "Blake">> "Didn't expect to see you here." <</speech>>
<<speech "Josh">> "Yeah, well. Friend of a friend." <</speech>> He could feel his pulse in his teeth. <<speech "Josh">> "Must be exhausting. All these people, all wanting a piece of you." <</speech>>
Something flickered behind her eyes — surprise, maybe, that he'd said it out loud. Then the smile smoothed it away. <<speech "Blake">> "It's fine. I'm used to it." <</speech>> And someone tugged her elbow, and she was gone, swallowed by the crowd, leaving him with the afterimage of that careful, unreachable smile.
He left the party early. He knew which room was hers — everyone did. He took the back stairs, tried the door, and when it opened under his hand he stepped inside and closed it behind him.
She spun around from her vanity, brush in hand, eyes wide — still half in her game-day glam, mascara not yet scrubbed off, her duffel and pom-poms dumped by the closet where she'd kicked them. For a second the mask dropped — she looked scared, and young, and very alone. Then it snapped back up. <<speech "Blake">> "Josh. What are you doing? You can't be in here." <</speech>> Her voice was steady, but her hand gripped the brush too hard.
<<speech "Josh">> "I came to see the real you." <</speech>> He moved toward her, and she backed up until the bed hit the backs of her knees. <<speech "Josh">> "The one behind the smile. The one who's tired of being wanted for the wrong reasons." <</speech>>
She shook her head. <<speech "Blake">> "You don't know anything about me." <</speech>>
<<speech "Josh">> "I know you're lonely," <</speech>> he said — and then he hit her with it. All his resentment, all the years of being one more face she looked through, funneled through the eclipse fire in his veins and slammed into her through his eyes.
She gasped, knees buckling, and he caught her, lowering her onto the bed. The wave of heat crashed through her — scorching, overwhelming, melting the careful walls she'd built. Her composure crumpled. The polite smile was gone, replaced by something trembling and desperate, her breath coming in short, ragged pants.
<<speech "Josh">> "There she is." <</speech>> He watched her pupils blow wide, watched her thighs press together. <<speech "Josh">> "All that ice. And underneath, you're just like everyone else. You're burning for it, aren't you?" <</speech>>
She couldn't answer. She could only look up at him, mouth open, drowning in the heat he'd poured into her.
<<speech "Josh">> "You've got a closet full of pretty things, right? Things you bought to be seen in, then never wore because nobody was worth it." <</speech>> He nodded at the closet. <<speech "Josh">> "Go put on something for me. The white lace. The flowers." <</speech>>
Her body moved before her mind could argue — the compulsion a hot wire straight through her will. She scrambled to the closet, hands shaking, and found the white floral lingerie she'd bought on a whim and never had the nerve to wear. She added fishnet stockings and the light blue heels, because the voice in her head — his voice — demanded pretty. Then she stood before him, trembling, half-naked, shame and want warring in her flushed face.
<<speech "Josh">> "Good girl. Now show me." <</speech>>
She obeyed, climbing onto the bed, and the look in his eyes made her thighs clench.
<video src="img/Blake/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She didn't know when she started posing. It happened on its own — a hand sliding up her thigh, fingers toying with the lace, back arching as she looked at him through her lashes. She smiled, a real smile, and hated herself for it. Her body moved for him like it had always been his, touching herself through the sheer fabric, adjusting the bra, letting him see everything.
<<speech "Josh">> "Look at you. The girl nobody could get close to, putting on a show on her own bed." <</speech>> He laughed, low and cruel. <<speech "Josh">> "You love this. Don't lie to me, Blake." <</speech>>
She shook her head, words caught in her throat — but her hips rolled, and her fingers found the wet heat between her legs, and the moan that escaped her was pure, shameless need.
<<speech "Josh">> "Not good enough. I want to see you wreck yourself. Put on the purple one. And this time, spread for me like you mean it." <</speech>>
Another command, another helpless scramble. She tore off the white set and found the purple lingerie — a bra and panties she'd worn exactly once, for a photo she never posted. She pulled them on, fingers clumsy, then lay back and spread her legs, looking up at him with the wide, desperate eyes of a girl who'd finally been seen — and couldn't stop it.
<video src="img/Blake/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She slid her panties aside with trembling fingers and touched herself — slowly at first, then with mounting urgency, moaning his name without meaning to. The orgasm he forced out of her was brutal, shameless, a wave of pleasure that left her limp and crying, tears of shame and relief rolling down her cheeks — relief, because for one terrible moment she hadn't been alone.
<<speech "Josh">> "Get dressed. Go back to your party. Smile for them like always." <</speech>> He was already at the door, looking back at her with a predator's grin. <<speech "Josh">> "But don't you forget who you belong to now." <</speech>>
He left the door hanging open. She lay there, trembling, her body humming with a terrifying, addictive mix of shame and need — and she knew, with sickening certainty, that she'd come back for more.
<<elseif _s is 2>>
The party downstairs had been going for hours, and Blake couldn't stop shaking. She'd locked herself in the private bathroom off her dorm suite, back against the door, hands gripping the sink. Every time she closed her eyes she saw him — his grin, his eyes, the heat he'd poured into her like fire into a vein. She should be disgusted. She'd told herself that a hundred times since that night. Instead she found herself counting the hours until she'd see him again, and the counting made her sick, and the sickness made her wet.
<img src="img/Blake/Corr1.jpg">
A hard knock rattled the door.
<<speech "Josh">> "Open up. I know you're in there." <</speech>>
Her hand moved to the lock before she could think. The door swung open and he stepped in, kicking it shut behind him, the small tiled room suddenly impossibly close. He was in a teal shirt, sleeves rolled up, eyes burning with that familiar, cruel amusement.
<<speech "Blake">> "You shouldn't be here." <</speech>> Her voice came out weaker than she wanted.
<<speech "Josh">> "You called me here." <</speech>> He reached out, grabbed her chin, tilted her face up. <<speech "Josh">> "With every time you thought my name. I could feel it. You've been begging for me all week." <</speech>>
Her protest died on her lips. It was true. God, it was true.
<<speech "Josh">> "Get on your knees." <</speech>>
Her knees hit the tile. He unzipped, already hard, and she leaned forward before he even told her to — lips parting, tongue tracing the underside in a long, worshipful stroke. She moaned at the taste, at the familiar fire that flooded her mouth and spread through her whole body.
<video src="img/Blake/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She took him deep, inch by inch, until her nose brushed his stomach, throat relaxing to swallow around him. Saliva ran down her chin, dripped onto her chest. She looked up at him through wet lashes, eye contact unbroken, and the approval in his face was the sweetest thing she'd ever tasted. His hand fisted in her hair, guiding, controlling.
<<speech "Josh">> "Deeper. That's it. Look at you — the girl who wouldn't let anyone close, choking on my cock in a bathroom. Your little fans would die if they could see you now." <</speech>>
A season ago she'd needed two tries to learn his name. Now she couldn't look away from him. The queen who'd looked through a thousand faces couldn't tear her eyes off his.
She bobbed faster, cheeks hollowing, one hand stroking his base, the other gripping his thigh. Her moans vibrated around him, needy and desperate, hips rocking against nothing.
<<speech "Josh">> "Not here. Somewhere I can really ruin you." <</speech>>
He pulled her off, yanked her upright, and dragged her out of the dorm and across to his place — a shitty frat-house room with scuffed wooden floors and a mattress on a frame. He pushed her down onto her knees on the bare boards, and she went willingly, looking up at him with the eyes of a girl who'd already given up.
<video src="img/Blake/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Naked, kneeling on the hard wood, she gripped him with both hands — long white nails against his skin — and worked him with a mix of handjobs and deep, messy oral. She kept her eyes locked on his the entire time, tongue out, strings of spit stretching from her lips to his shaft. She smiled around him, opened wide, took him almost to the base, and the tears on her cheeks were half shame, half joy.
<<speech "Josh">> "Look at you. You're a natural. All that practice since the party?" <</speech>>
She pulled off, a thick string of drool connecting them, and whispered, <<speech "Blake">> "I think about it all the time. I can't stop. Please — I need you. Please don't make me wait." <</speech>>
<<speech "Josh">> "Atta girl." <</speech>> He guided her head back down. <<speech "Josh">> "Then swallow. Every. Last. Drop." <</speech>>
She obeyed, throat working, and when she finally pulled back — lips swollen, glistening — she licked him clean with slow, careful strokes and looked up, waiting for his approval like a dog at heel.
<<speech "Josh">> "You're getting good at this. But we're not done." <</speech>> He smirked, tucking himself away. <<speech "Josh">> "You'll be back soon. Again and again. Until you forget you ever thought you were better than me." <</speech>>
Blake nodded, small and certain, still on her knees, still tasting him. The girl behind the smile was gone. What was left was his.
<<elseif _s is 3>>
She didn't wait to be called anymore. When the text came — one word, "Come." — Blake was out the door in minutes, hair perfect, body humming. She'd changed in the stairwell: white lace stockings and a garter belt, nothing else. A trophy for him, the way he liked it.
<img src="img/Blake/Corr3.jpg">
He was waiting in the living room of his place, sprawled on the white couch, watching her walk in. <<speech "Josh">> "That's my girl. Took you long enough." <</speech>>
Four years of performing for packed stands, and here was her whole audience now: one man on a white couch. She smiled — depraved, helplessly — and dropped to her hands and knees on the cushion, presenting herself without being asked. The words came out soft, automatic, and utterly hers: <<speech "Blake">> "I came as fast as I could. I was good. I waited like you said." <</speech>>
He stepped behind her, one hand gripping her hip, the other sliding along her ass. She looked back over her shoulder, mouth open, eyes shining, ready.
<video src="img/Blake/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He drove into her — hard, deep, no mercy — and she moaned loud and shameless, ass bouncing with every stroke, fingers clawing the couch cushions. His hand left her hip to grip her ass, squeezing, slapping, and she pushed back into every hit, loving it, smiling through the intensity.
<<speech "Josh">> "You love being used like this, don't you? Say it." <</speech>>
<<speech "Blake">> "Yes — I love it — I love being yours —" <</speech>> Her voice broke into a moan as he bottomed out. <<speech "Blake">> "Please, don't stop, I'm yours, I'm yours—" <</speech>>
He didn't stop. He fucked her until she came — screaming, clenching, crying — and only then pulled out, grabbed her arm, and hauled her into the kitchen.
<<speech "Josh">> "Up on the counter. On your back. Legs spread." <</speech>>
She scrambled onto the island, lying back on the cool surface, legs lifted and spread wide, watching him with eyes that had long since stopped pretending.
<video src="img/Blake/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He settled between her thighs, drove into her deep, and fucked her slow and hard — long, deep strokes, his cock shiny with her wetness. She propped herself on her elbows, watching the place they joined, moaning softly, eyes half-lidded, face slack with pleasure.
Then he pulled out completely, and she felt it — the emptiness, the ache — and looked down to see him spreading her open with his fingers, playing with the mess he'd made. He stroked himself, pushed back in once, twice, and came inside her — thick, hot, filling her completely.
He pulled out slowly, and she felt the creampie leak from her, dripping onto the counter, his fingers spreading her to watch it run.
<<speech "Josh">> "There it is. There's my girl." <</speech>>
Blake lay there, legs still spread, chest heaving, eyes fixed on him with perfect, empty devotion. <<speech "Blake">> "Thank you. Thank you, Josh. Please — don't ever leave me. I can't — I can't go back to who I was." <</speech>>
<<speech "Josh">> "You're not going anywhere." <</speech>> He leaned over her, thumb brushing a strand of blonde hair from her face — almost gentle. <<speech "Josh">> "You're mine now. Completely. And everyone who ever wanted you? They never had you. Not like this." <</speech>>
She smiled, tears rolling into her hair, and pulled him down for a kiss — tasting herself, tasting him, tasting everything she'd become.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The hallway between classes was a chaotic river of bodies, a current of noise and motion that Josh usually fought against. Today, he was just letting it carry him, his hands shoved in his pockets, his shoulders hunched. The familiar, bitter knot of anger was a cold stone in his gut. He was thinking about Lacy, about Blake, about the way they looked at him, a mix of fear and longing that was both a victory and a sickness. He was so lost in thought that he didn't see her until it was too late.
<img src="img/Casey/Normal.jpg">
She bumped into him, a hard, solid impact that knocked him back a step. "Sorry," she muttered, not looking at him, already trying to move past. He grabbed her arm, his grip tight. It was Casey. Her long dark hair was a stark contrast to the red varsity jacket she wore, a symbol of a jock world she didn't belong to but somehow owned. Her piercing eyes, sharp and defensive, finally met his.
<<speech "Casey">> "Let go of me, brat. I don't have time for your bullshit." <</speech>>
Her voice was a sharp-tongued snap, a verbal slap designed to make him flinch. It was her armor, the same kind he used.
<<speech "Josh">> "Casey. Still acting tough, I see. Still hiding behind all that attitude?" <</speech>>
His voice was a low growl, a challenge. He wasn't letting her go. He was tired of running from his past. He was going to confront it.
<<speech "Casey">> "Fuck off. I mean it." <</speech>>
She tried to yank her arm free, but he held on, his grip like iron. The anger in his gut, cold and hard, began to heat up, a familiar, dangerous energy. He hated her dismissiveness, her sharp-tongued defense that was so much like his own. He wanted to crack it open, to see the vulnerable girl he knew was hiding underneath.
He focused on the rage, letting it build, a hot, electric current. He didn't want to hurt her, not physically. He wanted to humiliate her, to strip away her defenses and leave her exposed. He funneled all his resentment, all his frustration at the world, at the system, at her, into a single, brutal blast of psychic force and slammed it into her.
<<speech "Casey">> "Ah!" <</speech>>
She cried out, not from pain, but from the sheer, overwhelming force of the sensation. It felt like a physical blow, a tidal wave of heat that crashed over her, stealing her breath and scrambling her thoughts. Her knees buckled, and he yanked her up, pulling her close. The world tilted, the carefully constructed walls of her sarcasm crumbling into dust. The sharp-tongued, defensive fighter was being torn apart from the inside, replaced by a burning, desperate ache that centered on the man holding her.
<<speech "Josh">> "You think you're so tough? So untouchable? I know a place. An old storage room. We're going." <</speech>>
His voice was a harsh command, not a request. He didn't give her a choice. He half-dragged, half-led her down the hall, her compliance a testament to the psychic sledgehammer he'd just unleashed on her. He found the old photography-club storage room, unlocked it with a kick, and shoved her inside. The dusty space smelled of paper and cleaning supplies; a plain white backdrop, a light green armchair, and a few abandoned props remained beneath the stark work lights.
<<speech "Josh">> "Strip. Down to your underwear. Now." <</speech>>
His voice was a harsh command, a brutal order. The psychic energy still hummed in the air, twisting his words into a compulsion that bypassed her conscious mind. Her fingers fumbled with the zipper of her low-rise jeans and the buttons of her varsity jacket until the layers of her armor lay on the floor.
Beneath them she wore a tiny pink-and-black string set that barely covered her breasts and hips, the kind of impulsive purchase she would have mocked anyone for noticing. The forgotten room had once belonged to the photography club; a plain white backdrop still covered one wall, with an old bottle of body oil among the abandoned props. Josh tossed it to her.
<<speech "Josh">> "Use it. Then show me what all that attitude was hiding." <</speech>>
She smoothed the oil over her chest, stomach, hips, and thighs until her skin shone beneath the stark lights. Facing the white backdrop, she squeezed her breasts, dragged her palms down her body, and cupped herself through the thin fabric while his gaze held her in place. Silver bracelets flashed at her wrists; the black choker at her throat made every soft, inviting look feel like another piece of her armor coming off.
<video src="img/Casey/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "That's it. Show me. Show me how much you need it." <</speech>>
His voice was a low, encouraging growl that sent shivers down her spine. She moved closer, her body undulating with a newfound, desperate grace. She could feel the tension building inside her, a desperate, aching need for more, for release.
<<speech "Josh">> "Enough. Take it off. Chair. Legs open." <</speech>>
His voice cut through the haze. Casey stripped away the tiny string set and dropped into the light green armchair beside the backdrop, completely nude except for the black beaded choker. One foot stayed on the floor while the other planted on the seat, spreading her wide beneath his stare.
<<speech "Josh">> "You like being mean, don't you? Hiding behind your sarcasm and your branded clothes? Touch yourself. Make yourself cum for me. Right here. Right now." <</speech>>
The command, amplified by the dark magic, was a tidal wave of compulsion. Her own hand felt foreign, driven by a will that wasn't hers. She slid two fingers in and out of herself with focused, frantic intensity while her other hand gripped her thigh. Her head tipped back, mouth open, hips rocking against every thrust as the sharp-tongued fighter dissolved into a writhing, desperate creature chasing the release he allowed her.
<video src="img/Casey/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Josh stood over her, arms crossed, drinking in every detail of her degradation. He had taken the tough, untouchable girl from his past and made her a desperate, masturbating mess in the green chair, and every broken moan fed his satisfaction.
Her body tensed, breath hitching in sharp, ragged gasps. With a final, shuddering cry, she came, convulsing against the chair as the pleasure left her trembling and weak. She lay there, her chest heaving, her mind a blank, placid canvas.
<<speech "Josh">> "Get up. Get dressed. And get the fuck out." <</speech>>
He turned his back on her, his dismissal as absolute as his commands. The magic twisted her post-orgasmic bliss into a new, urgent purpose. She scrambled to her feet, her movements clumsy. She quickly pulled on her clothes, her face flushed with shame and a lingering, addictive desire. She looked at his back, her piercing eyes now holding a flicker of the addictive dependency he had planted.
<<speech "Casey">> "I... I should go." <</speech>>
She rushed out of the room, leaving him alone in the dusty, defiled space. He waited a few minutes, then casually walked out. He found her in the hallway, leaning against the wall, her arms wrapped around herself, a look of confused, desperate longing on her face. She looked up at him, her tough mask completely gone, replaced by a raw, vulnerable need.
He turned and walked away, leaving her to her confusion, the first thread of his control now securely woven around her soul.
<<elseif _s is 2>>
The sour smell of the university athletics building's old locker room was a familiar cover for Josh, a mix of sweat, bleach, and cheap deodorant that masked the turmoil churning inside him. He leaned against a row of dented metal lockers after the last practice had cleared out, waiting in the dim rear corridor where nobody bothered to look. He kept replaying the scene in the storage room, the look on Casey's face, the feel of her trembling body under his hand. A cold, hard pride settled in his chest, a dark, possessive satisfaction. He had broken her, and in doing so, he had remade her. She was his now, a perfect, pliable creature of his own making.
<img src="img/Casey/Corr1.jpg">
He heard the sharp, staccato click of boots on the concrete floor. He didn't have to look. He knew who it was. He could feel her, a sharp, edgy presence in the humid, oppressive atmosphere of the locker room. He looked up, and there she was, a defiant silhouette in the dim light. Her long dark hair was a messy tangle around her head, and her piercing eyes, once so full of sharp-tongued defiance, were now hazy, clouded with a desperate, needy longing that was a direct reflection of his own dark will.
<<speech "Casey">> "You weren't in class." <</speech>>
Her voice was a low, accusatory growl, a sound that was both familiar and terrifyingly alien.
<<speech "Josh">> "Didn't feel like it. What's it to you?" <</speech>>
His voice was a low, challenging growl, a stark contrast to the pained, pleading tone he'd used before. He wasn't fighting it anymore. He was embracing it.
<<speech "Casey">> "I... I was looking for you. I feel... empty when you're not around." <</speech>>
Her voice was a soft, defeated whisper, a sound that twisted his gut into a knot of dark, possessive arousal.
<<speech "Josh">> "Is that so? Well, I'm here now. And I'm going to fill you up." <</speech>>
He pushed himself off the lockers and walked towards her, his movements slow and deliberate, a predator stalking his prey. He grabbed her arm, his grip like iron, and pulled her into the small, cramped space between the lockers.
<<speech "Josh">> "You've got a smart mouth, Casey. Always have. Let's find a better use for it." <</speech>>
He spun her around, her back pressed against the cold, hard metal. He looked down at her, at the tough, untouchable girl from his past now looking up at him with an expression of pure, unadulterated need. He was a monster, and he was proud of it.
<<speech "Josh">> "On your knees." <</speech>>
His voice was a sharp, commanding growl. The command, amplified by the dark magic that was now a part of him, was an irresistible order. She sank to her knees, her movements clumsy and eager, a testament to the addictive dependency he had planted in her. She looked up at him, her hazy eyes pleading for a release she didn't understand.
<<speech "Josh">> "You want to help me, right? You want to make me feel good?" <</speech>>
He unzipped his jeans, his cock springing free, a silent, damning testament to his power. She looked at it, her eyes wide with a mixture of fear and a desperate, addictive hunger.
<<speech "Casey">> "Yes... I want to help you." <</speech>>
Her voice was a soft, breathy whisper, a sound that was both familiar and terrifyingly alien. She leaned in, her tongue flicking out, tasting the tip of his cock. He groaned, a low, guttural sound of pleasure and dark, triumphant awe. She took him in her mouth, her lips a soft, warm, wet sheath around his shaft. She started to move, her head bobbing up and down, her movements clumsy but enthusiastic, a desperate, eager attempt to please him.
<video src="img/Casey/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The black strappy top slipped farther from her shoulders as she worked him in the dark, one hand around the base, saliva shining on her lips and his shaft. He was no longer just a boy from her past. He was the source of the need hollowing her out.
He pulled her into the adjoining office, where the wooden floor caught the low light, and stripped away the last of her clothes. Casey knelt naked with her head tilted back, mouth wide and tongue extended. Josh stroked himself over her face and came in thick strands across her tongue and lips, more dripping down her chin as she kept her eyes fixed upward.
<video src="img/Casey/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She stayed there after the last pulse, face wet and mouth still open, waiting for whatever he wanted next.
<<speech "Josh">> "Now you know your place, Casey. Don't ever forget it." <</speech>>
He turned and walked away, leaving her there, a broken doll in the humid, defiled sanctuary of the locker room. She stayed there for a long time, on her knees, the taste of him in her mouth, the feel of his power a permanent brand on her soul.
<<elseif _s is 3>>
The change in Casey showed most clearly in the hallways. Her sharp-tongued defiance had thinned into a quiet, watchful obedience, her eyes always seeking Josh out through the crowd. The real Casey still existed somewhere behind them, but each hit of his power made that room smaller.
<img src="img/Casey/Corr1.jpg">
He found her waiting in his apartment, perched on the dark leather couch in front of the stone fireplace. Her knees were drawn together, her dark hair tangled around her face. The moment he entered, her hazy eyes fixed on him with desperate hope.
<<speech "Josh">> "Waiting for me?" <</speech>>
<<speech "Casey">> "Yes." <</speech>>
The word came softly. Something inside her recoiled from how easy it was, but the lust rolled over the reaction before it reached her mouth.
<<speech "Josh">> "Good. Take off your clothes." <</speech>>
She obeyed until she was completely nude. Josh sat back on the couch and pulled her over him, holding her legs spread as she settled astride his hips. He thrust upward while she braced one hand against the leather and clutched her breast with the other, head tipping back as her body rocked with every deep stroke.
<video src="img/Casey/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He kept driving up into her until the empty pleasure shook through her. For one brief second, Casey's eyes cleared. She looked down at him and understood exactly where she was, what he had made of her, and the old fury flashed across her face.
Then the lust swallowed it. Her mouth opened in another mindless moan, and the bright emptiness returned.
<<speech "Josh">> "We're not done. Bed. On your hands and knees." <</speech>>
She crawled onto the bed and arched for him, naked, looking back over her shoulder. Josh gripped her hip and pressed the head of his cock against her ass. The last intact part of Casey recoiled somewhere far behind her eyes. Her body stayed still.
<<speech "Josh">> "You're mine, Casey. All mine." <</speech>>
He pushed into her ass and began to fuck her from behind, his shaft sliding in and out of the stretched, shining hole while her breasts hung beneath her. Cum and lubricant smeared around him as he held her hip and used her in steady, punishing strokes.
<video src="img/Casey/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When he was finished, she remained on all fours, dark hair hanging around her face, the smile that returned to her lips soft and vacant.
<<speech "Josh">> "Get dressed. Get out. I'll find you when I need you." <</speech>>
He walked away without looking back. Casey stayed there until he was gone, a hollow, obedient thing waiting for the next command. The sharp-tongued woman still existed in a small, dim room inside her mind, but she could no longer reach her own mouth.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The living room was bathed in the flickering blue-white light of the TV, a late-night horror movie playing to an audience of one. Josh sprawled on the couch, one arm thrown over the back, jaw tight. He'd had a shitty day—a professor had called him out in front of everyone, some jock had bumped him in the hall and laughed, and then he'd watched Nathan walk past the quad with that perfect girlfriend of his, Aria, hanging on his arm like a prize. Nathan. The guy who had everything Josh didn't, the guy who'd never even looked at him like he mattered. The knot of anger in Josh's gut was a hot, familiar coal, and he let it burn, stoking it with memories of every slight, every failure.
He heard soft footsteps on the stairs and knew it was Lily before she appeared.
<img src="img/Lily/Normal.jpg">
His $relation—his sweet, trusting, innocent $relation—a splash of color in the dim room, her long platinum hair in a messy ponytail, her favorite pink top and plaid skirt a bright spot against the gloom. She was the one good thing in his life. The one person who looked at him like he was her hero instead of a disappointment. And right now, that just made the anger burn hotter. She was a reminder of a purity he'd never have, a goodness the world had denied him.
<<speech "Lily">> "Hey, Josh. You okay? You look like you're about to punch the TV." <</speech>> She padded over and dropped onto the far end of the couch, tucking her feet under her, her concern a warm, unwanted blanket.
<<speech "Josh">> "I'm fine, Lil. Long day." <</speech>> He said it too fast, too rough, and he felt her flinch a little—not fear, just concern. She always did this. She always tried to fix him. It was pathetic.
<<speech "Lily">> "Elsa left you a plate in the fridge. I warmed it up." <</speech>> She smiled, bright and trusting, and it was like a match to his fuse. <<speech "Lily">> "Wanna watch with me? We can put on something funny instead." <</speech>>
Something twisted in his chest—affection, fierce and possessive, mixed with all that rage, all that humiliation. He loved her so much it hurt. She was his. And he hated her for being good, hated her for seeing the best in him, hated her for being so easy to break. And right then, with the anger roaring and the affection burning, he felt the power surge up his spine—hot, electric, a delicious, destructive energy. He didn't try to stop it this time. He welcomed it. He aimed it.
It was a focused blast, an invisible spear of raw energy that shot across the couch and hit her square in the chest.
Lily gasped softly. Her body went rigid for a heartbeat, then slack. A strange, pleasant warmth bloomed in her chest, spread down through her stomach, pooled low and heavy and confusing. She blinked at him, her blue eyes wide and suddenly hazy. He wasn't just her moody older $malerel anymore. He was the center of her world. The source of a sudden, desperate, aching need. She needed to be closer to him. She needed to make that angry tension go away. She needed to please him.
<<speech "Lily">> "I — I'll be right back." <</speech>> She stood, a little shaky, and hurried upstairs.
Josh stared after her, heart pounding with a sick, triumphant excitement. He knew exactly what he was doing. The horror was there, but it was buried under the thrill.
She came back down a few minutes later, and the TV light glinted off something dark—black lace. She'd changed into a sheer black bra and matching panties, black thigh-high stockings, and she stood at the bottom of the stairs with her hands clasped nervously in front of her, eyes wide and hazy, fixed on him. She had no idea why she'd put it on. It had just felt like what he wanted.
<img src="img/Lily/Corr2.jpg">
<<speech "Josh">> "Lily. What the hell are you wearing? Go change. Now." <</speech>> His voice was hoarse, but it wasn't a panicked command. It was a test. He wanted to see how far he could push.
<<speech "Lily">> "Don't be mad. Please don't be mad," <</speech>> her voice was small, pleading, and she walked toward him anyway—hips swaying in the black lace, the stockings, the whole innocent-broken thing of it. She was a perfect, pathetic picture.
<video src="img/Lily/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She posed for him without being asked—one arm raised against the wall, hand sliding over her chest, adjusting the bra strap, turning to show him the garters. The camera in his hand caught it all, and he told himself it was to document the corruption, to find a way to undo it. But he kept filming. He kept watching, a cruel smirk playing on his lips.
<<speech "Lily">> "Is this what you wanted? I want to make you feel better, Josh. Please. Let me make you feel better." <</speech>>
<<speech "Josh">> "Make me feel better?" <</speech>> He laughed, a harsh, ugly sound. He caught her as she swayed, guided her down onto the dark leather couch, not with gentleness, but with a firm, proprietary grip. <<speech "Josh">> "Oh, you will, little $relation. You will." <</speech>>
One of her sneakers was still on—the white one—and he slid it off, then slid his hand between her legs. Because she was his $relation, and she was begging him, and the power had already done the damage, and he was going to enjoy every second of it.
<video src="img/Lily/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He worked her with his fingers while she lay back, head tilted, mouth open, her eyes rolled half-closed, her hips moving against his hand. She was wet and trembling and utterly, terribly his, and when she came it was with a soft, broken cry of his name.
He pulled away, wiping his hand on her skirt. <<speech "Josh">> "Get dressed. Go to bed. This—this didn't happen. You understand?" <</speech>> There was no horror in his voice now. Just cold authority.
<<speech "Lily">> "Yes, Josh." <</speech>> She said it like a vow, her eyes still hazy with lust and confusion.
He watched her climb the stairs, black lace and pale skin, and he knew, with a sick, thrilling certainty, that he'd just broken the one thing he'd sworn he'd never touch. And it felt better than anything else that had happened all day.
<<elseif _s is 2>>
He told himself he could fix it. That was the lie he woke up with every morning and fell asleep with every night. He'd find a way to reverse it, to give her back her innocence, and everything would go back to the way it was supposed to be. It was a beautiful lie, and he clung to it—while spending his days fantasizing about the next time he could break her all over again.
Elsa had been suspicious. She'd asked him twice why Lily was being so clingy, why his $relation kept texting him at all hours. He'd laughed it off, said she was just going through a phase. Elsa had let it go, because Elsa believed the best of everyone, especially him. The fool.
He knew Lily would come to him. She always came to him now—dressing up, seeking him out, finding excuses. He was in his room, "studying," when she appeared in his doorway. She'd changed again: black lace, the same set from that night, and she stood there with that hazy, adoring look.
<img src="img/Lily/Corr2.jpg">
<<speech "Lily">> "I missed you. Elsa's gone for the evening." <</speech>> She said it like a gift, and the heat in his gut roared.
<<speech "Josh">> "Lily, we can't—" <</speech>> The protest was weak, a token effort they both saw through.
<<speech "Lily">> "Why not? You make me feel safe. You make me feel like I matter." <</speech>> She crossed to him, sat on the edge of his bed, and looked up at him with those wide, trusting eyes. <<speech "Lily">> "I want to take care of you. Please. Let me." <</speech>>
He told himself it was for her. He told himself he was letting her do this so he could study the effects, so he could find the cure. It was the most elaborate lie he'd ever told himself, and he believed it right up until he unbuttoned his jeans, the sound of the zipper impossibly loud in the quiet room.
She was wearing his old white long-sleeve top when she leaned over him on the bed, hair loose, ring glinting on her finger—and she took him into her mouth like she'd been born for it, eager and worshipful, her innocence a grotesque parody of devotion.
<video src="img/Lily/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "God—Lil—" <</speech>> His hand found her hair, and he didn't push her away. He held her there, a fistful of her platinum blonde hair, guiding her, controlling the rhythm, the way you hold something you own. <<speech "Josh">> "That's it. Take it. Show me how much you missed me." <</speech>>
She worked him with her lips and tongue, slow, deliberate strokes, looking up at him with that mix of focus and adoration, and he let her. He let his $relation take him apart, telling himself it was research, telling himself he was still trying to save her, while the part of him that reveled in her degradation grew louder, stronger.
Later, on her knees in the bright bedroom, she was fully nude—white choker around her neck, ponytail loose around her face—and she looked up at him with those hazy, corrupted eyes as she worked him, tongue out, eager to please.
<video src="img/Lily/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He came with a groan, and she swallowed it all, licking her lips, smiling up at him like he'd given her the greatest gift in the world. And the horror in him was quieter now, drowned under the suffocating heat of his power and lust. He was still telling himself the lie. But the lie was getting harder to hear over the sound of his own satisfaction.
<<elseif _s is 3>>
There was no lie left. He'd stopped telling it. Why bother? He had what he wanted.
Lily was his. Completely, utterly his—the sweet $relation who used to defend him was gone, replaced by a devoted, needy little thing who lived for his attention, his approval, his cock. He'd done that. He'd taken the one person he'd sworn to protect and reduced her to this. And the terrible, exhilarating truth was that he loved it. He loved the way she looked at him, the way she belonged to him, the way she was finally, completely his.
<img src="img/Lily/Corr3.jpg">
He took her on the white-sheeted bed in her room, blue walls around them, her hair spread across the pillows. She smiled up at him at first, bright and trusting even now, and then her mouth opened in pure pleasure as he thrust into her, her body rocking with each stroke.
<video src="img/Lily/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Look at you. My perfect little $relation, spread out for me," <</speech>> his voice was cruel, and he meant it, and he loved himself for meaning it. <<speech "Josh">> "You used to defend me, Lil. You used to think I was a hero. And now look what you are. Look what I made you. A desperate little slut, begging for her $malerel's cock." <</speech>>
<<speech "Lily">> "Yours," <</speech>> she breathed, and the word was a key turning a lock inside him, unleashing the last of his restraint—because she meant it, and because some part of him had always wanted exactly this, and because he'd sworn he'd never want it.
He pulled her up, moved to the pink tufted sofa in the living room, laid her across his lap, and she straddled him—riding him slow and deep, her fingers with the light-blue polish resting on her lower belly, holding herself open for him.
<video src="img/Lily/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lily">> "I love you, Josh. I was always yours. I never wanted anyone else." <</speech>>
He came inside her with a groan, buried deep, and she gasped his name, clenching around him, utterly his. And afterward he held her, and she curled into him, and he stared at the ceiling with his heart in pieces.
He had gotten exactly what he'd always secretly wanted, and it was the worst, most exhilarating thing he'd ever done. She was his $relation. She was supposed to be safe from him. And he'd ruined her—and he couldn't stop, because she felt so good, and she loved him so much, and that was the part he could never, ever forgive himself for.
He told himself he'd let her go. He told himself he'd find a way to undo it all.
And then she rolled over and reached for him again, and he let her, because the lie was finally dead, and all that was left was the ugly, beautiful truth.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Carolina/Normal.jpg">
Carolina arrived at the costume party in a white crop top and denim shorts, carrying a garment bag for the little photo booth she had promised to help run. She had painted the backdrop herself. The party belonged to one of Gina's friends; Havenwood had contributed decorations, and Jasper had made Carolina promise not to stay alone after closing.
Josh watched her from the edge of the room.
They knew of each other, but that was all. Carolina knew Josh through Elsa and Lily—the former friend Nathan no longer spoke to, with a reputation that made people lower their voices. Josh knew Carolina as Jasper's blonde foster sister, the orphan who had grown up at Havenwood and somehow become one of the brightest people in every house photograph. They had never had a real conversation.
He had also seen her trying to copy her friends' flirting at parties: a borrowed hair toss from Gina, a sharp line from Casey delivered too softly, a wink that became an ordinary blink when she lost her nerve. People usually found it charming. Josh found it irritating.
Seeing her there put a sour pressure behind Josh's ribs. Havenwood had given Jasper exactly the kind of family Josh could never hold together.
He was sober. He had come because he knew Jasper's circle would be there, and because resentment was easier to feed when he could put a face to it.
Carolina disappeared into the purple-tiled bathroom to change for the booth. Josh followed before the door closed.
She had already traded the casual clothes for a champagne-gold satin crop top and matching mini skirt. Her long blonde hair caught the purple light. Facing the mirror, she tried the half-lidded look Gina had demonstrated and whispered, "Did it hurt when you—" before stopping.
<<speech "Carolina">> "No. Absolutely not." <</speech>>
Josh pushed the door open in time to hear her.
<<speech "Josh">> "Practicing?" <</speech>>
Carolina spun around, mortified.
<<speech "Carolina">> "Occupied." <</speech>> She reached for the door. <<speech "Carolina">> "Seriously, Josh. Out." <</speech>>
He stayed in front of it.
<<speech "Josh">> "Jasper let you come here alone? That's careless." <</speech>>
<<speech "Carolina">> "Jasper doesn't let me do anything. He's my foster brother, not my owner." <</speech>>
<<speech "Josh">> "Keep telling yourself that." <</speech>> His gaze moved over the gold outfit. <<speech "Josh">> "You spend your whole life playing happy family in that house. I want to see how much of it survives when you're not standing beside him." <</speech>>
<<speech "Carolina">> "You need a better hobby." <</speech>>
She met his eyes.
The lust hit her like a wave breaking inside her body.
Heat tore through her chest and flooded downward so fast that her knees softened. Carolina caught the sink, breath coming hard, the bathroom lights blurring around Josh's face. Her skin felt too tight. Every place the satin touched became unbearable.
<<speech "Carolina">> "What did you—" <</speech>>
<<speech "Josh">> "There she is." <</speech>> His voice was quiet and vicious. <<speech "Josh">> "Jasper's sweet little foster sister, wet because I looked at her." <</speech>>
<<speech "Carolina">> "No." <</speech>>
The word was still hers. Her hands were not. They moved to the satin top, pulling it down until her natural breasts spilled free.
<<speech "Josh">> "Go on, then. Flirt. Show me what you keep trying to copy from your friends." <</speech>>
Carolina cupped and squeezed herself, smiling despite the horror still trapped behind her eyes. She lifted the top, pressed her breasts together, ran her fingers through her hair, and turned to show him every angle. At first each movement had the same awkward concentration as her harmless attempts at parties. The lust quickly hollowed the hesitation out, turning the imitation into a soft, open-mouthed display she could no longer stop.
<video src="img/Carolina/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The bathroom had become a changing room for the booth; Carolina's second costume hung inside the garment bag. Josh unzipped it and tossed the neon-pink pieces at her.
<<speech "Josh">> "Put it on. Fix your hair. Then go upstairs." <</speech>>
She changed with trembling fingers: neon-pink long sleeves, white harness straps, white socks, bright pink platforms. Her blonde hair stayed loose across her shoulders. And she kept talking the whole time, because Carolina always talked — it just came out wrong now, bright and bubbly and half-dissolved.
<<speech "Carolina">> "Okay. Okay, this is — these are for the booth. There was a whole plan, and you're not — you're not part of the..." <</speech>> She heard herself giggle, breathless and dumb, and couldn't find the end of the sentence anywhere. <<speech "Carolina">> "I had a joke. About your shirt. Casey would say it so much better than me." <</speech>>
The buzz behind her eyes and the pulse between her thighs didn't leave much room for the rest of it, but the talking went on by itself — soft, happy fragments about the backdrop she'd painted, the photos she was supposed to take, the party somewhere below — wrapped in the strange, floating certainty that whatever Josh wanted next was simply what happened next.
The upstairs living room was bright and empty, a white leather couch beneath the windows. Josh pushed her back onto it and held her legs wide. His fingers worked deep into her pussy, then pressed into her ass while the lust kept every nerve exposed and frantic. Carolina rocked against his hand, furrowed brows lifting with each broken moan — and the moans kept trying to be words.
<<speech "Carolina">> "Josh, that's — you can't just — okay. Okay." <</speech>> It came out sweet and wonder-struck, nothing like a no. <<speech "Carolina">> "Oh gosh. Oh gosh, that's —" <</speech>>
<<speech "Josh">> "Look at you. All that sweetness, and this is how fast it comes apart." <</speech>>
He drove his fingers harder. Clear fluid poured from her and soaked the couch as her mouth opened wide around an overwhelming release.
<video src="img/Carolina/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When the wave receded, Carolina stared at the shine across her own thighs, blinking slowly — and heard herself keep talking, soft and wondering.
<<speech "Carolina">> "That never happens. I mean — it never happened before. You're not even my type. You're really, really not..." <</speech>> A little laugh slipped out of her. The thoughts behind the words came up broken and soft — the party below, somewhere; Jasper's face, somewhere — and nothing needed to connect.
Josh wiped his hand on the neon fabric.
<<speech "Josh">> "Get dressed. Go smile for everyone." <</speech>>
<<speech "Carolina">> "What did you do to me?" <</speech>> It came out curious instead of afraid, her head lolling toward him, eyes glazed and unfocused — like she was asking the name of a drink she'd decided she liked.
<<speech "Josh">> "Nothing you won't come back for." <</speech>>
She nodded. She didn't know what she was nodding at. The heat pulsed once, warm and patient, somewhere underneath what was left of her thoughts — and that felt, more than anything, like an answer.
<<elseif _s is 2>>
<img src="img/Carolina/Corr1.jpg">
Carolina was packing supplies in the campus art studio when Josh found her.
She was still friendly in public, still laughing with her friends and greeting people first. The clumsy flirting still happened — but every playful line now arrived half-ruined, the memory of Josh in the purple bathroom rising behind it until she laughed at the wrong part of her own jokes.
She wore a white halter crop top, black micro shorts, and the silver choker she had begun touching whenever that memory surfaced. She had filled two pages of her sketchbook trying to pin it down—purple tile, gold satin, his face—and torn both pages out.
The door closed behind him.
She had a line ready — something Casey would say, something with an edge. What came out instead was Carolina's own voice, wobbly and bright in all the wrong places.
<<speech "Carolina">> "Hi! We're closing soon, so — the studio closes at nine, just so you... know." <</speech>> She gestured vaguely at the door, the shelves, the sentence, and lost all three. Her hand found the edge of the shelving.
<<speech "Josh">> "Was that supposed to be sharp? You really do borrow everything." <</speech>> He stepped closer. <<speech "Josh">> "You've been avoiding the bathroom at every party since I touched you." <</speech>>
She raised a hand — a small, wavering wall between them, the warning behind it already dissolving into the heat climbing her neck.
He crossed the room, slow and sober, until the cutting table pressed against the backs of her thighs.
<<speech "Josh">> "You're worried I'll embarrass your foster brother." <</speech>> He smiled without humor. <<speech "Josh">> "I haven't even started." <</speech>>
The second wave hit while she was still deciding which word to use.
Carolina folded over the table with a strangled gasp. The need was worse because her body remembered it now. Her thighs went slick beneath the black shorts. Her hands shook as Josh lifted the halter over her head himself and dropped it on the cutting table.
<<speech "Josh">> "Put that on. Everything else comes off." <</speech>>
She obeyed while insisting the whole way through.
<<speech "Carolina">> "I'm not — okay, I am, but this is the last time. Say it back. Say this is the last time." <</speech>> Nobody said it back. Bare from the waist up, blotched pink and breathing hard. Josh put her on her knees and stood over her.
<<speech "Josh">> "Show me what matters more—your little house, or the only thing that makes this stop." <</speech>>
<<speech "Carolina">> "It's not like that. I don't even like you." <</speech>> It came out more like an apology than a defense.
Carolina took him deep. Saliva ran from her stretched lips, over her chin and neck, and down the full curves of her breasts. The low angle caught her head tilted back as he filled her mouth and throat, every wet stroke adding another shining trail across her chest.
<video src="img/Carolina/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Some part of her still counted the reasons to leave, and she said them out loud — Jasper would notice; Chanel would ask questions; Casey would know she was lying — she got through all three names twice, like a spell that had stopped working, before Josh's hand tightened in her hair and the names dissolved beneath the next surge of need.
He pulled her into the darker equipment room and held himself against her open mouth. Carolina's blonde hair was damp around her face, nose stud catching the low light. She looked upward with blue eyes while her tongue worked the head and saliva streamed down her chin onto her bare chest.
When he finished, she kept her mouth open. Cum coated her lips and chin. She used her fingers to gather it, rubbed it across her lower face, and held his gaze while she licked the mess from her skin.
<video src="img/Carolina/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "You can go back to playing foster family now." <</speech>>
Carolina looked up at him from her knees, eyes glazed — the disgust long since drowned, only the need left, patient and humming under her skin.
<<speech "Carolina">> "Uh huh. I'll say I was in the darkroom." <</speech>> She was still gathering his taste from her lips with one finger, absorbed in it. <<speech "Carolina">> "I'm in the darkroom a lot now." <</speech>>
<<speech "Josh">> "You still came when I touched the door. You don't even have to say it anymore." <</speech>>
He left her in the dark room topless and dazed, his taste in her mouth. She did not follow him. She also did not feel relieved when he was gone.
<<elseif _s is 3>>
<img src="img/Carolina/Corr2.jpg">
Carolina came to the modern apartment dressed like armor made from bad decisions: a neon-yellow fishnet crop top, metallic silver micro shorts, and black fishnet stockings. She had followed the location Josh sent because she meant to tell him, once and clearly, that he would never touch Havenwood through her.
On the way up she rehearsed something Casey might say. *That shirt has more personality than you do.* It sounded devastating in Carolina's head.
He opened the door and let her make it three steps inside.
She opened her mouth to deliver it — and it came out in entirely the wrong voice, soft and pleased and none of Casey's edge.
<<speech "Carolina">> "That shirt has more... personality than..." <</speech>> The line dissolved into the warmth pooling under the fishnet, and what finished it was a small, helpless giggle. She blinked at him, slow and lost, still hunting for the rest of the burn somewhere behind the buzz.
<<speech "Josh">> "It already ended." <</speech>> He closed the door. <<speech "Josh">> "You just haven't noticed what's missing yet." <</speech>>
The wave crashed through her.
Carolina gripped the white couch, fighting to keep her name, Jasper's face, the shape of Havenwood's kitchen. Josh stripped away the silver shorts and fishnets, leaving only a sparkling silver choker and black lace bottoms pulled aside between her legs.
He put her on her back, one leg raised high, and drove into her. She gripped the couch and her own thigh while her breasts shifted with every deep thrust. Her eyes closed. Soft, broken half-words replaced the warning she had come to deliver — the warning kept turning into his name.
<video src="img/Carolina/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
For one clear second, Carolina surfaced.
She saw Josh above her and understood that she had brought him the path to Jasper. Her expression changed. Her hand shoved weakly at his chest.
<<speech "Carolina">> "J—" <</speech>>
Josh caught her wrist and looked directly into her eyes.
The lust flooded the small, bright room where the real Carolina still lived. The shove became a caress. The alarm went out of her face. What returned was a wide, empty smile.
<<speech "Carolina">> "Please," <</speech>> she breathed. <<speech "Carolina">> "I need more." <</speech>>
He dragged her to the grey quilted bed and stripped away the last of the lace. Carolina lay completely nude with her legs open, smiling up at him before the next thrust broke the smile into open-mouthed intensity.
He used her until her body went loose beneath him, then pulled out. Carolina immediately wrapped her fingers around his cock and guided thick ropes of cum across her lower stomach and between her breasts. A long strand stretched from the tip to her skin. She pointed at the mess on her belly, then lifted the same finger to her mouth and licked it clean while staring into the camera.
<video src="img/Carolina/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Who are you protecting?" <</speech>>
Carolina blinked slowly.
<<speech "Carolina">> "I don't know." <</speech>>
It was not a lie. The warmth in her memories had been burned down to disconnected facts: a house, a woman named Chanel, a man she used to call her foster brother. None of them could compete with the need Josh had left in her body.
He sent her home. Carolina walked into Havenwood wearing the same soft smile everyone knew. She answered questions, kissed Chanel's cheek, and sat beside Jasper at dinner.
Casey made a joke about Carolina's terrible flirting. The old Carolina would have laughed before the sentence ended. This Carolina waited, saw the others smiling, and copied them half a beat late.
Behind her eyes there was almost nothing left. The bright orphan who had built a family out of every friendly gesture watched from a small, dim room and could no longer make her own hands tremble.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Alina/Normal.jpg">
Alina had agreed to counsel Josh again because Elsa kept asking her not to give up on him. Josh did not hate Alina. He disliked the appointment, disliked being watched, and became irritated whenever her patience felt too much like pity.
The session began in the counseling room attached to Alina's home practice. She wore her usual white crop top and striped mini skirt. A white tufted couch stood opposite her chair.
Alina started the clock but left the file closed.
<<speech "Alina">> "I'm glad you came back." <</speech>>
<<speech "Josh">> "Elsa kept asking." <</speech>>
<<speech "Alina">> "I know. She will only hear that you attended. The rest is yours unless you want it shared." <</speech>>
Josh remained near the end of the couch.
<<speech "Alina">> "You don't have to begin with anything difficult. We can sit quietly until you decide what would feel useful." <</speech>>
<<speech "Josh">> "You say that like staying is already progress." <</speech>>
<<speech "Alina">> "Staying is just staying." <</speech>> Her voice remained gentle. <<speech "Alina">> "It does tell me you were willing to try again." <</speech>>
That was enough to irritate him. He heard encouragement as sympathy and sympathy as proof that Alina considered him damaged.
<<speech "Josh">> "Stop looking for something good in every answer." <</speech>>
<<speech "Alina">> "I'm listening, Josh. I am not trying to make you into anything." <</speech>>
Their eyes remained locked. His irritation sharpened into anger.
Josh did not fully control what happened next. Hate and anger fueled the physical power; he could neither call it cleanly nor measure it once it escaped. The overload broke loose through the sustained gaze.
Alina's water glass slipped from her hand and struck the carpet. Her pulse raced. Heat crossed her face and chest; her nipples tightened beneath the white top. A hard contraction pulled through her pelvis, followed by sudden wetness and an unbearable need centered on Josh.
He went still. The timing had not been deliberate.
Alina moved before either of them spoke. Instead of backing away, she stepped into the narrow space between his knees and laid her palm over the front of his trousers. Her fingers pressed his groin and traced the weight hardening beneath the fabric. Josh had not ordered her to touch him. The choice was voluntary—an immediate, bewildering answer to the need flooding her body.
The shock reached her a second later. Alina snatched her hand back and stared first at Josh, then at the fallen glass.
*Why did I do that? I must be more tired than I thought. I panicked and crossed a line.*
She bent to retrieve the glass and had to steady herself against the chair.
<<speech "Alina">> "I'm sorry. That was inappropriate." <</speech>> Her breath came too quickly. <<speech "Alina">> "I need a minute. The room feels very warm." <</speech>>
For one moment, Josh could have left.
Then he saw her press her thighs together, remembered the deliberate pressure of her hand through his trousers, and chose to exploit what his anger had started.
<<speech "Josh">> "Stand up." <</speech>>
<<speech "Alina">> "Josh, the session is over. You can leave without making this worse." <</speech>>
<<speech "Josh">> "You still think you are the one deciding what happens." <</speech>>
A change of clothes rested in Alina's nearby bag: a tight red long-sleeve crop top with lace trim, short denim shorts, and large hoop earrings. Josh pointed to it.
<<speech "Josh">> "Put those on." <</speech>>
Alina told herself she was keeping him calm until the strange dizziness passed. Her shaking hands changed the clothes anyway. The red fabric dragged across painfully sensitive breasts; the denim pressed against soaked underwear. The large hoops swung at her ears.
Josh pointed to the white tufted couch.
<<speech "Josh">> "On it. On your knees. Smile like you're glad to see me." <</speech>>
She knelt forward on the tufted cushions in the red crop top and denim shorts, shifting her weight, brushing her hair from her face, and looked up at him with a bright, white-toothed smile she could not stop making.
<video src="img/Alina/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Then he forced her into the adjoining bathroom, chose red strappy lingerie from her drawer, and placed her on the counter above a mounted black dildo. Alina lowered herself onto the toy and rocked her hips. It slid wetly in and out, her spread cheeks and the arch of her body on full display — exposed breasts, open mouth, everything he wanted visible.
<video src="img/Alina/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Josh made her climax and left before the physical need had completely faded.
Alina cleaned the spilled water, stopped the session clock, and sat alone on the bathroom floor. She told herself she had been exhausted, frightened, and overwhelmed during a terrible appointment. She had made choices she could barely remember making.
It was painful to believe. It was still an ordinary explanation.
<<elseif _s is 2>>
<img src="img/Alina/Corr1.jpg">
Josh sent Alina a message: *Come get the recordings if you don't want Elsa to see them.*
Alina went to his teal-walled bedroom because she wanted to protect Elsa and prevent the footage from spreading. She knew going alone was unwise, but she told herself a quiet conversation might still keep the situation from becoming worse.
Josh waited beside the black-sheeted bed in a black tank top and grey sweatpants.
<<speech "Alina">> "Please delete them." <</speech>>
<<speech "Josh">> "You came all this way to ask politely." <</speech>>
<<speech "Alina">> "Elsa loves you. Whatever you feel about me, don't use her concern to hurt her." <</speech>>
<<speech "Josh">> "You are still talking to me like I need your help." <</speech>>
<<speech "Alina">> "I think you are angry and making choices that will hurt everyone involved, including you." <</speech>>
His anger rose again. Their eyes met, and another physical wave broke loose before Josh could control its strength.
Alina grabbed the edge of the bed. Her heart hammered; heat flooded her skin; her breasts ached; her pussy clenched and soaked through her underwear.
*I barely slept. I am panicking. I should not have come alone.*
Her body dropped to its knees despite the warning.
Josh stripped her completely. On the blue rug, Alina pulled down his sweatpants and took his cock into her mouth. His hands rested on her head and shoulders while she bobbed, looked up, and sucked through saliva coating her lips and his shaft.
<video src="img/Alina/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She pulled back.
<<speech "Alina">> "You can still stop." <</speech>>
<<speech "Josh">> "I don't want to." <</speech>>
On the patterned gray bedspread, Alina lay on her back with dark hair spread beneath her. Josh held his cock above her open mouth and came across her tongue, lower lip, chin, and neck. A thick strand hung from her mouth while her eyes remained half-lidded.
<video src="img/Alina/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Alina">> "I made a mistake coming here." <</speech>>
<<speech "Josh">> "You keep saying mistake because you want to believe the woman from the office is still in control." <</speech>>
He held her gaze and refused to let his anger cool. Another surge broke through him, stronger than he could measure.
Alina tried to hold onto simple facts.
<<speech "Alina">> "My name is Alina. Elsa is my friend. I came for the recordings." <</speech>>
<<speech "Josh">> "Say it again." <</speech>>
<<speech "Alina">> "My name is..." <</speech>>
The rest disappeared beneath another contraction.
By the end of Level 2, Alina still possessed memories, but she could no longer keep them arranged long enough to protect herself. Warmth, patience, and professional language remained as fragments around a body that needed Josh.
<<elseif _s is 3>>
<img src="img/Alina/Corr3.jpg">
Alina no longer searched for explanations. Familiar words surfaced without enough thought behind them to form an argument.
He came to her at the wellness office now — after hours, when the waiting room was dark and the last client's file was closed. He always came to her there, because her office was the one place that had still been hers, and taking it was part of what he wanted. Josh pinned her upright against the wall between her framed diplomas.
<<speech "Josh">> "Why are you here?" <</speech>>
<<speech "Alina">> "You called." <</speech>> She swallowed. <<speech "Alina">> "I need you." <</speech>>
<<speech "Josh">> "Where is the woman who wanted to help me?" <</speech>>
Alina frowned as if trying to remember someone else's name.
<<speech "Alina">> "Tired." <</speech>>
One of her legs hooked over his arm while he pulled her white panties aside and drove into her from the front, her reception desk blurring beside them. Josh gripped her ass, lifted her with every thrust, and kissed her open mouth. A small black tattoo showed high on her left hip while her free hand pressed against the wall.
<video src="img/Alina/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Alina">> "More. Make it quiet." <</speech>>
<<speech "Josh">> "There is almost nothing left to quiet." <</speech>>
He walked her across the office to the white couch where her clients sat and told him their worst days — the couch where Elsa had once begged her not to give up on him. Josh fastened a black leather collar with metal rings around her neck and stripped her fully nude. Alina lay on her back across it with legs spread while he took her in missionary. Cum leaked from her pussy around his shaft, coating her outer lips and the base of his cock as he continued thrusting.
<video src="img/Alina/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "What will you tell Elsa?" <</speech>>
<<speech "Alina">> "I'm tired." <</speech>> She touched the collar and smiled vaguely. <<speech "Alina">> "Need rest. Need Master." <</speech>>
Elsa noticed Alina missing appointments, repeating herself, and staring through questions. Alina could imitate her old warmth for a short conversation, but no coherent psychologist remained behind it.
Josh had not planned the first release in her counseling room. He had become angry and lost control. Every humiliation after that was a choice.
Alina had begun by explaining a dropped glass as fatigue. By the end, fatigue was one of the last intact words left in her mind.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Chanel/Normal.jpg">
Chanel knew Josh as a student in her required sociology course. He was bright enough to do excellent work and combative enough to turn feedback into a personal attack. Josh knew her as Professor Chanel Reynolds—the woman who ran Havenwood with Jasper, spoke plainly about social support, and returned his essays covered in patient comments he read as condescension.
The lecture hall emptied around them. Chanel stood at the front in a fitted light-pink dress, stacking papers while Josh remained beside the last row with his marked essay folded in one hand.
<<speech "Josh">> "A B-minus." <</speech>>
<<speech "Chanel">> "You ignored two of your own sources and changed your argument halfway through." <</speech>>
<<speech "Josh">> "You understood the argument." <</speech>>
<<speech "Chanel">> "Understanding it is not the same as finding it supported." <</speech>>
He came down the aisle, anger held tight rather than slurred or reckless. Josh was sober, focused, and tired of hearing correction in the same calm voice adults had used when they decided he was the problem in a room.
<<speech "Josh">> "If Jasper had written it, you'd call it lived experience." <</speech>>
Chanel set the papers down.
<<speech "Chanel">> "If Jasper submitted this essay, I would tell him to cite page forty-three and rewrite the conclusion." <</speech>>
<<speech "Josh">> "Right. Everybody gets the same patient little lecture." <</speech>> He stopped below the desk. <<speech "Josh">> "That's what you sell, isn't it? Nobody is beyond help. Everybody deserves support. As long as they sit quietly and thank you for it." <</speech>>
<<speech "Chanel">> "I am discussing your paper, Josh. Not your character." <</speech>>
<<speech "Josh">> "That's worse." <</speech>>
The old resentment sharpened behind his eyes. Chanel saw the stare and mistook it for one more challenge.
Then the lust struck.
It hit her like a hot tide breaking inside her body. Breath vanished from her lungs. Her knees pressed together beneath the dress as sudden wetness spread between them. The lecture hall remained cool and empty, but Chanel's skin flushed as though every light had moved closer.
She gripped the desk.
<<speech "Chanel">> "What did you do?" <</speech>>
Josh watched the instant her professional focus became physical need. Surprise crossed his face only briefly. Cruel satisfaction replaced it.
<<speech "Josh">> "There you are." <</speech>> He climbed onto the low stage. <<speech "Josh">> "I was wondering how long Professor Compassion could keep grading me once her body had an opinion." <</speech>>
Chanel forced herself upright.
<<speech "Chanel">> "Leave the room." <</speech>>
The command sounded firm. Her body betrayed it with a tremor.
Josh leaned close enough for her to feel his breath.
<<speech "Josh">> "Go home. Try to explain this to yourself. If the heat gets bad enough, send me the address." <</speech>>
He took the essay and walked out.
At Havenwood, the wave still lived under Chanel's skin. She checked the house schedule, answered a question from the kitchen, and reached the privacy of her attached apartment without anyone noticing that her hands were shaking.
She told herself she was documenting a threat when she messaged Josh. She told herself bringing him into a private room would keep Havenwood out of it. The explanations survived until he arrived.
The annex was bright behind white curtains. Chanel had removed the pink dress and everything beneath it except black lace-top stockings. Josh stood near the door, looking at her full naked body with the bored appraisal of someone inspecting property.
<<speech "Chanel">> "You will tell me what you did, and then you will leave." <</speech>>
<<speech "Josh">> "Turn around." <</speech>>
The heat surged. Chanel hated that she obeyed.
She bent forward to present her ass and exposed pussy, looked back over her shoulder, then straightened and spread one cheek with her hand. Josh made her turn, squat low, open her knees, and run her fingers over herself while keeping eye contact. Every motion was deliberate enough for Chanel to pretend she was demonstrating control. The lust made the pretense transparent.
<video src="img/Chanel/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "You called me here to demand answers." <</speech>> He looked down at her spread body. <<speech "Josh">> "Ask your question, Professor." <</speech>>
<<speech "Chanel">> "How do I make it stop?" <</speech>>
<<speech "Josh">> "You don't." <</speech>>
He pointed toward the bathroom.
Chanel sat naked on the edge of the white bathtub, layered gold necklaces and bracelets still on, feet braced apart. Under Josh's stare, she rubbed and fingered herself in continuous circles and thrusts. Her skin shone with sweat. She tilted her head back, mouth open, hips pushing into her own hand as the pleasure became more intense and less connected to anything she wanted.
<video src="img/Chanel/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her orgasm left her gripping the tub, breathing hard and furious.
Josh had not touched her.
That was the humiliation he wanted her to remember.
<<speech "Josh">> "You gave yourself a better grade this time." <</speech>>
Chanel looked up at him, the real anger still alive in her eyes.
<<speech "Chanel">> "Get out of my home." <</speech>>
Josh smiled and left. The heat receded enough for shame to return, but not enough to erase the memory of obeying him.
Chanel dressed and walked back into Havenwood. She answered Jasper normally, checked the front lock, and carried on with the evening. Nobody saw the professor inside her apartment scrubbing the bathtub twice because she could still feel Josh watching.
<<elseif _s is 2>>
<img src="img/Chanel/Corr1.jpg">
Chanel arranged the meeting in her home office because campus felt too exposed and the rest of Havenwood was separated by the annex door. She wore glasses, a black blazer over a low pink top, a black mini skirt, and black lace stockings. The clothes were armor: professional, deliberate, chosen to remind both of them who she was.
Josh dropped into the green armchair without being invited.
<<speech "Chanel">> "I am transferring your paper to another grader and removing myself from any direct supervision involving you." <</speech>>
<<speech "Josh">> "You brought me to your house to tell me you don't want to see me." <</speech>>
<<speech "Chanel">> "My private office. Not the house." <</speech>>
<<speech "Josh">> "You always do that? Rename the room until the problem sounds manageable?" <</speech>>
Chanel placed a withdrawal form on the desk.
<<speech "Chanel">> "Sign it." <</speech>>
Josh did not look at the paper. His stare fixed on her, and the lust tide returned.
It flooded her faster, burning through the control she had rehearsed. Chanel's thighs tightened beneath the skirt. Her fingertips went numb against the desk. She kept her voice level only by forcing each word out separately.
<<speech "Chanel">> "Sign. The. Form." <</speech>>
<<speech "Josh">> "Kneel first." <</speech>>
She remained standing for several seconds. The fight was real. So was the wetness soaking into her underwear.
Josh leaned back in the green chair.
<<speech "Josh">> "All those careful comments in the margins, and this is the only instruction you understand." <</speech>>
Chanel sank to the light wooden floor beside him.
She opened his trousers and took him into her mouth, one hand gripping the shaft while the other rested on her thigh. When he moved from standing to the chair, she followed, lips and tongue working steadily as she braced herself on him. The blazer came off. The pink top remained low across her breasts while she leaned deeper over his lap.
<video src="img/Chanel/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up by the chin and walked her into the adjoining dining room. The long dark table and black chairs stood in clean daylight, too ordinary for what he was making of her.
Josh ordered the pink top off. Chanel knelt topless on the tile, dark reddish-brown hair framing her face, mouth open and tongue extended. She cupped and squeezed her breasts while he stroked in front of her, then took the tip between her lips and sucked without looking away.
<video src="img/Chanel/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Better than office hours." <</speech>>
Chanel pulled off him, saliva bright on her mouth.
<<speech "Chanel">> "I hate you." <</speech>>
The statement still belonged to her. Josh smiled because he could hear how little protection it offered.
<<speech "Josh">> "Keep saying it. Your mouth needs the practice." <</speech>>
He made her finish him with her hand, deliberately keeping the release off camera and off her body, then stepped around her to retrieve the unsigned form.
<<speech "Josh">> "I'll keep this." <</speech>> He folded it into his pocket. <<speech "Josh">> "You might need another reason to invite me over." <</speech>>
When the annex door closed behind him, Chanel remained on the dining-room floor with her discarded blazer visible through the office doorway.
She was not empty yet. She was furious, frightened, and still capable of naming what he was doing to her. But the lust remained beneath those thoughts, waiting for his face, and part of her had already begun calculating when the annex would next be private.
<<elseif _s is 3>>
<img src="img/Chanel/Corr3.jpg">
The withdrawal report lay on Chanel's classroom desk beneath a folder addressed to the dean. She had written down everything she could state without sounding impossible: coercion, intimidation, inappropriate contact, a request that Josh be removed from her course and barred from Havenwood.
He entered as the last students left.
Chanel wore a blouse, black lace panties beneath her skirt, sheer stockings, and heels. She put one hand on the folder.
<<speech "Chanel">> "You are not coming into my home again." <</speech>>
Josh closed the lecture-hall door.
<<speech "Josh">> "You wrote me up." <</speech>>
<<speech "Chanel">> "I documented you." <</speech>>
<<speech "Josh">> "Same red pen?" <</speech>>
<<speech "Chanel">> "The dean has a copy." <</speech>>
It was a lie. Josh knew it from the way her hand covered the only folder.
The lust hit with the force of a collapsing wall.
Chanel doubled over the desk. Heat tore through her, so violent that the room flashed white at the edges. Josh pulled the folder from beneath her hand and dropped it into the wastebasket.
<<speech "Josh">> "There. Your complaint has been reviewed." <</speech>>
She tried to reach for it. He caught her wrist, pushed her onto the edge of the wooden desk, and lifted her skirt.
<<speech "Chanel">> "Stay away from Havenwood." <</speech>>
<<speech "Josh">> "You still think you're protecting something." <</speech>> He tore her panties aside. <<speech "Josh">> "You're a locked door that learned how to open when I look at it." <</speech>>
Chanel leaned back on one hand while he held a stockinged leg high and thrust into her. Their mouths met in deep, punishing kisses. Her free hand gripped her own breast as pleasure broke her sentences into open sounds against the chalkboard backdrop.
<video src="img/Chanel/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
In the middle of it, Chanel came back to herself.
Her eyes focused. She saw the empty lecture hall, the skirt around her waist, the report in the bin. She saw Josh clearly—not wounded, not misunderstood, not a student she could redirect. A man enjoying the fact that she was disappearing.
<<speech "Chanel">> "Jasper." <</speech>> Her voice cracked. <<speech "Chanel">> "I need to warn—" <</speech>>
Josh gripped her jaw and forced her to look at him.
<<speech "Josh">> "No." <</speech>>
The next wave drowned the name. Chanel's eyes softened. Her mouth opened into the empty smile he had been waiting to see.
<<speech "Josh">> "Take me home, Professor." <</speech>>
<<speech "Chanel">> "Yes." <</speech>>
The word held no warmth, fear, or judgment. Only need.
In the annex bedroom, Chanel lay fully nude across white sheets, a gold necklace at her throat and the small tattoos on her chest and hip visible. Josh spread her legs and drove into her while gripping one thigh. Her full breasts moved with every stroke; her mouth remained open, eyes half-closed. When he withdrew, thick white cum leaked from her open pussy onto the bedding.
<video src="img/Chanel/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Josh used the withdrawal report to wipe his hand and left it crumpled beside the bed.
<<speech "Josh">> "Grade that." <</speech>>
Chanel looked at the ruined pages. Somewhere behind the lust, the real woman understood what they had contained and tried to move her hand toward them.
Her fingers stopped halfway.
<<speech "Chanel">> "Tell me what you want." <</speech>>
The voice was pleasant and vacant.
Chanel continued teaching. She ran Havenwood meetings, answered residents, and smiled at returning alumnae. Her competence survived because routine required no freedom. People occasionally noticed a pause before her laughter or the way her eyes lost focus when Josh's name appeared on a class list, but they read it as fatigue and moved on.
Behind the locked annex door, Josh's messages determined her schedule. She began noticing which adult volunteers, faculty friends, and former residents made him look twice. Invitations went out in Chanel's warm professional voice, each one widening his access to Havenwood's adult circle.
The real Chanel remained somewhere small and unreachable, hearing her own kindness used as bait. She could still name every person she wanted to protect.
She could no longer make her body protect any of them.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Josh knew Kali as the friend who could coax Elsa into admitting what his latest outburst had done to her, then make her laugh before the guilt pulled her back. He resented Kali's confidence that every ugly feeling could be named and softened. Kali knew Josh through repeated pickups at the house, strained group encounters, and Elsa's conflicted stories. She considered him volatile and selfish, but not beyond reach, because Elsa still believed there was someone worth reaching.
Kali knew Josh was angry before she saw him.
The signs were distributed through the house. She had come to wait for Elsa before meeting the others. An outfit bag hung from her shoulder, packed with the red-and-white club look Gina had talked her into trying and a pink fishnet bodysuit in case the night became stranger than expected.
<img src="img/Kali/Normal.jpg">
Kali found Josh in the red-walled lounge below the main floor. A white wooden chair sat beneath the low light. He was staring at his phone without reading it.
<<speech "Kali">> "Hey. Elsa said I could wait here." <</speech>>
<<speech "Josh">> "Then wait upstairs." <</speech>>
She could have left. Instead she noticed the tightness around his eyes and the way his thumb kept opening the same message.
<<speech "Kali">> "Did you two fight?" <</speech>>
<<speech "Josh">> "Do you ever get tired of crawling into people's heads?" <</speech>>
Kali leaned against the doorframe, not mocking him and not retreating.
<<speech "Kali">> "I'm not in your head. You're broadcasting." <</speech>> She nodded toward the phone. <<speech "Kali">> "You look hurt, and you're trying to turn it into anger before anybody notices." <</speech>>
The accuracy irritated him, but it also gave him an idea he immediately enjoyed.
Kali was proud of reading Elsa, calming her, and naming the feelings Josh wanted left alone. He could turn that gift against her. He could make the woman who understood everyone unable to understand anything beyond what her body needed from him.
Josh stood.
<<speech "Josh">> "You don't know a fucking thing about me." <</speech>>
<<speech "Kali">> "Then tell me I'm wrong without trying to scare me." <</speech>>
She held his gaze because Kali had always believed that looking directly at pain made it easier to reach the person inside it.
Josh deliberately held the connection open. He gathered his anger, fed it until the power burned hot and heavy inside him, and willingly released it while watching for the first sign of collapse.
The wave hit Kali like a body check.
Her shoulders snapped back and her spine arched. The smile vanished from her face as all the air left her lungs in one sharp gasp. Heat punched through her chest, spreading a deep flush beneath the neon crop top before climbing her throat and cheeks. Her pulse accelerated until the room seemed to beat around her; tunneled vision turned the red walls into a blur while Josh remained fixed at the center.
Both nipples tightened painfully beneath the fabric. Her breasts became so sensitive that the movement of her own breathing hurt. Then the power dropped into her pelvis. A deep contraction folded her forward. Another locked her thighs together. More followed in a rapid chain, squeezing empty muscles until wetness flooded her underwear and began cooling against her skin.
She caught the doorframe with both hands. Her body trembled between retreat and the sick impulse to move closer to him. Kali could still read the expression on Josh's face. That was the horror: she understood his pleasure perfectly while her nerves screamed that only his touch could stop what he had started.
<<speech "Kali">> "J-Josh... my head feels... hot." <</speech>> Her voice came out thin, then broke beneath an involuntary moan. <<speech "Kali">> "What did... what... why can't I keep the words?" <</speech>>
Josh smiled. He had chosen the hit and enjoyed how quickly her confidence became frightened, scattered concentration.
<<speech "Josh">> "I'm simplifying the vibe-check queen. When I'm done, you'll be a giggling bimbo who can read three things: whether I'm pleased, whether I'm angry, and whether my cock is hard." <</speech>>
<<speech "Kali">> "Don't... touch... no, touch—fuck, I didn't mean... which one did I mean?" <</speech>>
His fingers closed around her wrist. Kali gasped as sensation ripped up her arm and tightened every muscle below her waist.
<<speech "Josh">> "Read that." <</speech>>
Kali studied his face and found no surprise there—only satisfaction.
<<speech "Kali">> "You... wanted this." <</speech>> She forced the words through chattering teeth, losing the thought twice before it emerged. <<speech "Kali">> "You did it 'cause... watch me. You like... dumb? You want me... dumb." <</speech>>
<<speech "Josh">> "Now you're reading me right." <</speech>>
He shoved the outfit bag into her chest.
<<speech "Josh">> "Put on the red one." <</speech>>
Kali shook her head. Her hands opened the bag.
<<speech "Kali">> "No. No, I'm going... upstairs? Was I downstairs? I was... waiting for..." <</speech>>
Her fingers peeled off the neon top and skirt. The disobedient movements were not sleepwalking or surrender; Kali felt each one. She understood every consequence while her body pursued the promise that obeying him might ease the fire.
The red thong settled between her cheeks. White lace-top stockings climbed her legs. Josh left her back bare so the floral tattoo across her shoulder remained exposed.
He pointed to the chair.
<<speech "Josh">> "Show me how well you understand people." <</speech>>
Kali gripped the chair, arched, and lowered herself while facing away from him. She tried to turn the movement into a joke, some ridiculous dance she could survive by laughing at it. No laugh came.
<video src="img/Kali/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kali">> "You like... this." <</speech>> She looked back over her shoulder, breathless, fury breaking into bewilderment. <<speech "Kali">> "You wanted me... know you chose... chose what? Why am I posing?" <</speech>>
Josh grabbed her hair and pulled her upright.
<<speech "Josh">> "Good. Feel the thought break while you're trying to read me." <</speech>> His voice was low and steady. <<speech "Josh">> "Every hit leaves less Kali and more bimbo. Soon you'll giggle whenever you forget what you were saying." <</speech>>
He made her exchange the red thong for the sheer pink fishnet bodysuit. Purple light filled the adjoining lounge. Josh sat in the red leather armchair and pulled Kali across his lap.
Her hands braced on his shoulders. Her hips began to move against him before he told them to.
<video src="img/Kali/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The slow grinding humiliated her precisely because it resembled the easy, playful movement she had brought to a hundred nights out. Josh had taken a language she used for joy and made every roll of her hips spell his ownership.
Kali leaned close enough to whisper.
<<speech "Kali">> "I can still... see you. Mean. Hot. Mean and... I lost it." <</speech>> A confused giggle escaped against his shoulder.
Josh held her harder.
<<speech "Josh">> "Then watch." <</speech>>
He fed his anger until another wave tore through her. Kali climaxed against his lap, teeth clenched, nails digging into his shoulders. The overload immediately began building again.
Josh pushed her off him.
<<speech "Josh">> "Change back." <</speech>>
She lay on the rug shaking.
<<speech "Josh">> "Elsa doesn't see you like this. Fix your clothes. Fix your face. Then get out before she comes home." <</speech>>
Kali dressed with clumsy hands. At the door she looked at him one last time, searching for any regret that might complicate what she had read.
There was none.
Josh made sure she saw his enjoyment before he shut the door.
<<elseif _s is 2>>
Kali returned because she refused to spend the rest of her life afraid of somebody else's eye contact.
She came in daylight wearing a mauve-pink ribbed dress with a deep neckline and matching satin bra, large hoops framing the face she intended to keep composed. She paused in the hall with one hand behind her head, reminding herself that Josh had been a damaged man in Elsa's life before he became a threat in hers.
<img src="img/Kali/Corr1.jpg">
She told Elsa only that she needed five minutes with Josh. When she found him alone in the bright living room, she closed the door behind herself but did not approach.
<<speech "Kali">> "You did it on... purpose. I keep knowing that, then it slips. You liked... watching me get dumb." <</speech>>
Josh looked up from the white sofa.
<<speech "Josh">> "You came back to tell me something I already know?" <</speech>>
<<speech "Kali">> "I came back to tell... feelings. I know feelings." <</speech>> Her voice tried to steady itself. <<speech "Kali">> "Afraid. Angry. Dis... dis-something. There were three. I had three." <</speech>>
For a second, Kali believed she had reached the end of the sentence intact.
Then Josh stood, looked directly at her, and willingly fired another surge through the connection.
The effect struck before Kali finished breathing in. Her body locked, then collapsed. She hit her knees with both hands catching on the floor, blonde hair falling across a face flushed dark with heat. Her heart hammered against her ribs; saliva filled her mouth; both breasts ached beneath the mauve dress as her hardened nipples scraped the satin bra with every shudder.
Pelvic contractions twisted through her around nothing. The first made her gasp. The second drew a broken sound from her throat. By the fourth, wetness had soaked the sheer lingerie and the muscles in her thighs were shaking too badly to support escape. She crawled backward while her hips betrayed her, tilting toward Josh each time he stepped closer.
Her resolve remained conscious inside the failure. She still felt afraid, angry, and disgusted. The power simply made those truths physically smaller than the need he had forced through every nerve.
<<speech "Kali">> "This doesn't make... you strong. Makes me... dumber. You want dumb Kali." <</speech>>
<<speech "Josh">> "No." <</speech>> He stepped out of his clothes. <<speech "Josh">> "It makes you weak." <</speech>>
He stripped her and pulled her by the hair into position. Kali looked up at him with hatred sharp enough to survive the first thrust into her mouth.
<video src="img/Kali/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She worked him because every nerve demanded the taste and pressure. Saliva stretched from her lips. His hand held the back of her head. When he finished, white cum coated her tongue and lips, and her body made her display it before swallowing.
<<speech "Josh">> "What do I feel now?" <</speech>>
Kali breathed through her nose, fighting to assemble the answer from pieces that would no longer stay in order.
<<speech "Kali">> "Happy. Horny. You like bimbo mouth." <</speech>> She blinked, then giggled around the crude simplicity. <<speech "Kali">> "Was that... a good read?" <</speech>>
His face tightened. He dragged the pink crop top over her head, leaving the rest of her bare, and forced her back onto her knees in front of the white sofa.
<<speech "Josh">> "Try again." <</speech>>
<video src="img/Kali/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He made her continue long after her jaw hurt. Kali's gaze stayed upward, once expressive and searching, now being trained to monitor only the smallest changes in Josh's face: approval, irritation, the warning before his hand tightened in her hair.
That was the real damage. Her gift was not disappearing. It was narrowing.
By the time he released her, Kali could no longer remember what Elsa had felt that morning. She could remember the precise instant Josh's anger eased.
He wiped her chin with the hem of the pink top.
<<speech "Josh">> "Now you read something useful." <</speech>>
<<speech "Kali">> "Useful bimbo." <</speech>> Kali repeated it softly, smiling as though he had given her a compliment.
<<elseif _s is 3>>
Kali entered Josh's house to collect Elsa's jacket.
That was the purpose written in the message on her phone. She read it twice in the hall because purpose had become difficult whenever Josh was near. She had been on her way elsewhere in a simple outer dress over a burgundy strapless corset and matching sheer thong. Before reaching the living room, the conditioning made her remove the dress and stand smiling in the lingerie, navel piercing and tattoos exposed, without remembering when she had decided to present herself.
<img src="img/Kali/Corr2.jpg">
The living room opened around a brick fireplace and tall windows. Josh stood with his back to her.
Kali knew he was angry from the angle of his shoulders.
She knew he wanted her silent from the way he did not turn.
She knew exactly what her body should offer before he asked.
The realization made the last healthy part of her recoil.
<<speech "Kali">> "N-no... I think no. Is no the... right one?" <</speech>>
Josh glanced over his shoulder.
<<speech "Josh">> "I didn't say anything." <</speech>>
<<speech "Kali">> "Didn't... say. Body heard anyway." <</speech>> Tears filled her eyes, then a bright empty smile replaced the expression. <<speech "Kali">> "You made me... easy. Pretty. Empty feels... floaty." <</speech>>
Josh let her see the anticipation in his face. Then he deliberately called up the anger that strengthened his power and released another full wave.
It struck Kali through the burgundy corset. Her entire body seized; shoulders pulled back, breasts lifting hard against the structured cups while nipples tightened beneath them. A flush consumed her chest and face. Her mouth opened around a voiceless gasp as pulse and heat battered away the meaning of the jacket she had come to collect.
The force hit her pelvis last and hardest. Her thighs spread without permission. Contraction after contraction worked through her empty pussy until wetness soaked the sheer thong and shone along her inner thighs. She remained upright only because Josh caught her. The body that once read a whole room now reported one fact with unbearable clarity: he had hit her again, and every nerve wanted him inside.
Josh stripped off the burgundy lingerie, bent her forward, and drove into her from behind. She braced one hand as long blonde hair fell around her face, the rose and script tattoos across her back and hip moving with every impact.
<video src="img/Kali/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He lifted her fully from the floor. Her legs wrapped around him. Her mouth found his in a deep kiss that her conscious mind had not chosen. Kali tasted the contempt there and still pulled him closer.
Inside her, emotional perception became a torture instrument. She felt his satisfaction without any hidden plea for rescue beneath it. He enjoyed reducing Elsa's perceptive friend to a body that monitored him for the next use.
For one lucid second, Kali surfaced.
She broke the kiss.
<<speech "Kali">> "I was... right? You like dumb Kali. Bimbo Kali... reads you good." <</speech>>
Josh's grip hardened. He held her gaze and sent one more deliberate pulse through the body wrapped around him.
<<speech "Josh">> "And look what being right made you." <</speech>>
Kali's muscles clamped hard enough to steal her voice. An involuntary orgasm tore through her while Josh was still holding her aloft, legs locking around him and vision whitening. When sensation receded, her reading of him remained perfect but every other emotional signal had gone faint.
He threw her onto the beige tufted sofa and folded her upside down, legs spread high in a piledriver position. Clear fluid already ran from her onto the cushion.
<video src="img/Kali/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Each deep thrust drove her awareness farther from the people she once read to help. Elsa became a name without an emotion. Gina became noise and motion. Jade became a shape holding a calendar. Their inner lives ceased to reach her.
Josh remained painfully clear.
His breathing changed; Kali tightened around him.
His jaw set; she stopped trying to speak.
His eyes softened by a fraction; an empty smile appeared on her face because she understood that he wanted one.
<<speech "Josh">> "What am I feeling?" <</speech>>
Kali's body shook beneath him. The answer arrived automatically.
<<speech "Kali">> "More. You want... more bimbo." <</speech>>
<<speech "Josh">> "And what do you feel?" <</speech>>
There had once been dozens of answers at once. Concern. Humor. Affection. Alarm. Curiosity. The rich weather of every room she entered.
Now there were only simple labels tied to him.
<<speech "Kali">> "Pretty. Empty. Wet." <</speech>> She giggled and touched her lower lip. <<speech "Kali">> "Josh tells me the rest." <</speech>>
The words were not loving. They were the complete vocabulary of the bimbo Josh had designed: appearance, emptiness, arousal, and his authority to supply every missing thought.
Josh left her folded on the couch until her legs trembled. Then he forced her upright, made her wash, and dressed her in the neon lime outfit she had worn into the house.
He placed Elsa's jacket in her arms.
<<speech "Josh">> "Deliver it." <</speech>>
Kali held the jacket against her chest. For a moment she stared at it as if trying to feel the person who owned it.
Nothing came.
She looked back to Josh for the meaning of the task.
He pointed toward the door.
Kali smiled and obeyed.
<</if>>
</div>
<hr>
<div style="text-align:center;">
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
<p style="color:#ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
<p style="color:#00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Josh knew Jade through Elsa's repeated attempts to keep the friend circle and her family life from colliding. Jade had sat at that house's table, collected Elsa after arguments, and gently encouraged boundaries Josh considered betrayal. He saw her as the polished practical voice teaching Elsa to imagine choices without him. Jade knew Josh well enough to recognize his patterns. She believed he was intelligent, wounded, and responsible for the harm he kept choosing; some loyal part of her still hoped Elsa would eventually be proved right about him.
Jade had been inside Josh's house for seven minutes and had already made three sensible decisions: wait for Elsa in the living room instead of wandering through the house, keep the evening's spare clothes zipped inside her tote, and refuse to be pulled into whatever mood Josh was carrying from room to room.
She wore the red cropped shirt, black frayed denim shorts, and red platform heels she had chosen for the evening. The bright casual outfit suited the woman Josh knew from Elsa's social world rather than the controlled images he intended to make of her.
<img src="img/Jade/Normal.jpg">
Elsa had texted that she was running late. Gina, through a bartender who knew a promoter who had suddenly found space on a guest list, had invited half the circle out on a whim. Jade had brought two possible outfits because somebody needed to think farther ahead than the next ten minutes.
Josh leaned in the doorway, watching her place her phone, keys, and bag in one neat line on the coffee table.
<<speech "Josh">> "You always unpack like you're establishing a command post?" <</speech>>
<<speech "Jade">> "Only in hostile territory." <</speech>> Jade's answer was light, but not evasive. She looked up at him. <<speech "Jade">> "Elsa said she'd be back soon. I'll stay out of your way." <</speech>>
<<speech "Josh">> "Then do that." <</speech>>
He should have left. Instead he remained there, restless and sharp-edged, irritated by the very order of her belongings. Jade watched him pace to the kitchen, open the refrigerator without taking anything, and return with the same clenched jaw.
<<speech "Jade">> "Did something happen?" <</speech>>
<<speech "Josh">> "There it is." <</speech>> His mouth twisted. <<speech "Josh">> "Elsa sends the organized one to diagnose me." <</speech>>
<<speech "Jade">> "Elsa didn't send me to do anything. I came to meet her." <</speech>> She folded her hands over one knee. <<speech "Jade">> "But you're stomping around your own house trying to start an argument with furniture. So yes, I noticed." <</speech>>
<<speech "Josh">> "You think noticing makes you smart?" <</speech>>
<<speech "Jade">> "No. Knowing when to stop does." <</speech>> Her voice stayed calm. <<speech "Jade">> "You don't have to like me, Josh. You do have to stop turning every bad feeling into Elsa's emergency." <</speech>>
The sentence gave Josh exactly the excuse he wanted. His eyes fixed on hers. Jade did not look away; she had spent years soothing Elsa after fights built from that same stare, and she refused to reward it with fear.
Josh had wanted to use the power on her from the moment she entered. Jade was one of the practical voices teaching Elsa to set boundaries, make plans, and imagine a life in which Josh's anger did not determine the day. Breaking that voice would not be an accident. It would be pleasure.
He gathered every resentment her calm advice provoked and deliberately fed it into the heat inside him. Then he held her gaze and released it all at once.
The power did not whisper or persuade. It crossed the room like a pressure wave and struck Jade square in the chest.
Her shoulders slammed into the couch. Her spine bowed violently; the breath burst from her lungs in a wet gasp. Fingers clawed at the cushions while a scarlet flush raced from her breasts to her throat and face. Her pulse hammered visibly beneath her jaw. Both nipples drew into aching points beneath the red crop top as though rough hands had pinched them.
Then the force dropped lower.
Jade's thighs snapped together around the first pelvic contraction. A second clenched deeper, then a third, rapid and involuntary, squeezing empty muscles until wetness flooded her panties and ran hot against her skin. Her vision tunneled. The room blurred at its edges while Josh remained painfully sharp at the center of it. Her analytical mind tried to catalogue the physical betrayal—pulse, heat, involuntary contractions—but each term broke apart before she could connect it to the next. Thoughts that had always arrived in ordered sequences now flashed as loose fragments: Josh. Wrong. Wet. Leave. Touch. Every nerve treated him as the only possible source of relief while language scattered around the demand.
She gripped the couch, trying to anchor herself to anything that was not him.
<<speech "Jade">> "Wh-what—my..." <</speech>> Her voice collapsed into another gasp. She swallowed, but the sentence would not organize itself. <<speech "Jade">> "I can't... what did... why am I so... wet?" <</speech>>
Josh watched her fold forward with her thighs crushed together and her breath breaking into short, helpless pulls. Satisfaction replaced the anger on his face. He had chosen the hit, watched it travel through her, and enjoyed that her intact mind understood exactly what her body had become.
<<speech "Jade">> "Don't... don't come—my legs... Josh, no... why do I want..." <</speech>> She reached for her phone.
Josh caught her wrist first. The contact sent a shudder through her entire body. Her fingers opened. The phone struck the rug.
<<speech "Josh">> "Still trying to give instructions." <</speech>> He pulled her upright and smiled at the broken concentration in her eyes. <<speech "Josh">> "I'm going to turn Elsa's perfect little planner into a smiling bimbo who can't hold one thought long enough to finish it. Your body already understands the assignment better than you do." <</speech>>
<<speech "Jade">> "Elsa... she comes back. I was... waiting. Was I waiting?" <</speech>>
<<speech "Josh">> "Then you'd better learn fast." <</speech>>
He kicked her tote toward her. Jade stared at it, understanding the command before he spoke and hating herself for the relief that moved through her at the prospect of obeying.
<<speech "Josh">> "Open it." <</speech>>
Inside lay the black-and-beige lingerie she had packed for the club and the casual flame-print top she had planned to wear afterward. Josh held up the lingerie between two fingers.
<<speech "Josh">> "Put this on. Heels too." <</speech>>
<<speech "Jade">> "N-no. I don't... I don't wear... why are my hands... doing it?" <</speech>> Her hands were already removing the red crop top.
That contradiction broke something small and private inside her. She kept saying no while her clothes came away. Josh watched without helping, forcing her to witness every obedient movement as her own.
He marched her to the mirror beside the wooden staircase. Black and beige straps framed her body; stockings climbed her legs; heels made every tremor visible.
<<speech "Josh">> "Look at yourself." <</speech>>
Jade kept her eyes on his reflection instead.
<<speech "Jade">> "You'll... regret... I had a plan. I had... something smart to say." <</speech>>
<<speech "Josh">> "Turn around." <</speech>>
<video src="img/Jade/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her body posed while her mind catalogued exits. She turned before the mirror, then moved to the staircase, one heel above the other, black hair falling down her back. Josh made her arch and hold herself open to his inspection. Every adjustment of a strap, every slow presentation of her ass, sent another humiliating pulse through the need boiling inside her.
Jade tried to count breaths. By twelve, she had lost the number.
Josh tossed the flame-print crop top and black bottoms at her.
<<speech "Josh">> "Change. The collar too." <</speech>>
<<speech "Jade">> "Why... change? I just... changed. Did I?" <</speech>>
<<speech "Josh">> "Because every change makes the old Jade harder to find. By the time I'm done, you'll need me to tell your bimbo head what outfit comes next." <</speech>>
The thick silver chain-and-ring choker closed around her throat. He pulled the black top up and left it bunched above her breasts. Jade's two braids lay over her shoulders, absurdly neat beside the degradation.
His hands closed over her breasts. Her body arched toward him before she could stop it.
<video src="img/Jade/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jade">> "I h-hate... I... why does that feel... so good?" <</speech>> The words came out in disconnected pieces.
<<speech "Josh">> "Good." <</speech>> He squeezed harder, watching her eyes flutter despite the hatred still alive in them. <<speech "Josh">> "Keep trying. I want to hear the sentences get shorter every time I hit you." <</speech>>
A car passed outside. Jade seized on the sound, gathering the remnants of herself around the possibility that it was Elsa.
Josh released her abruptly.
<<speech "Josh">> "Get dressed." <</speech>>
Her knees nearly failed when the contact ended.
<<speech "Josh">> "Everything exactly where it was. Fix your hair. Pick up your phone. Then get out." <</speech>>
Jade obeyed because leaving mattered more than pride. She rebuilt the practical young woman layer by layer—sweater, skirt, bag, keys—while the chain's pressure seemed to remain around her throat after he removed it.
At the door she managed to face him.
<<speech "Jade">> "I'm telling... tell Elsa. Need to tell... what happened? What... happened?" <</speech>>
Josh smiled without warmth.
<<speech "Josh">> "Plan on it." <</speech>>
<<elseif _s is 2>>
Jade chose the meeting place, the time, and the precautions. Her apartment. Midday. Phone recording from the shelf. Elsa expecting a call afterward.
That was the story Jade told herself as Josh stepped into her living room and closed the door. A plan was still a plan even when her palms were sweating and every nerve in her body recognized him before he spoke.
At home she wore a white cropped T-shirt lifted enough to expose her midriff and underboob with black lace panties beneath it. She waited beside the glass door, one hand against the pane, using the ordinary private outfit to remind herself that Josh had entered her space—not the other way around.
<img src="img/Jade/Corr1.jpg">
<<speech "Jade">> "You will... tell me what happened. Then stay away from me and... Elsa. That's the plan. I wrote... no, I recorded..." <</speech>>
<<speech "Josh">> "You invited me here to give me orders?" <</speech>>
<<speech "Jade">> "I invited you because... witnesses know. Three moves. I had three... people? No, precautions." <</speech>>
The lie was almost perfect. Josh glanced once toward the shelf and found the phone immediately.
<<speech "Josh">> "Still planning three moves ahead." <</speech>> He crossed the room, stopped the recording, and set the phone face-down. <<speech "Josh">> "But you missed the only move that matters." <</speech>>
<<speech "Jade">> "Don't look... no, I can't... eyes won't..." <</speech>>
The fear in her command pleased him. Josh fixed his eyes on hers, recalled the sight of Jade leaving his house with her careful mind in pieces, and willingly fired a second, more concentrated blast.
It hit before Jade could turn away.
Her back struck the wall hard enough to rattle the glass. Every muscle seized. The white crop top dragged across breasts made instantly hypersensitive; her nipples hardened beneath the fabric until the friction hurt. Her pulse became a pounding roar inside her ears, fast enough to shake her vision, while saliva filled her mouth and her breath shortened into helpless little pulls.
The earlier damage opened inside her pelvis like a wound. Contractions clenched one after another—harder, faster, centered on the memory of Josh's hands. Wetness soaked the black lace and slipped down one thigh. Her knees gave way, but he kept her upright by the chin and forced her to absorb the full wave through eye contact.
Jade still remembered the recording phone, Elsa's expected call, and every step of her plan. The power did not erase those facts gently. It tore their urgency apart and replaced it with one screaming physical demand: get closer to the man she had arranged every precaution against.
<<speech "Jade">> "This isn't con... con-sent. I know that word. I know... I was saying..." <</speech>>
<<speech "Josh">> "That's the last long word you get to keep. Soon it'll be pretty, suck, smile, and whatever I put in your mouth." <</speech>> He tore away the white shirt, then spotted the black fishnet outfit folded on a nearby chair for another day. He forced it over her body and pulled the mesh beneath her breasts. <<speech "Josh">> "Get on the couch." <</speech>>
Jade moved backward until the pale-blue cushions touched her legs. She was still saying no when he pushed her down.
He used her mouth to end the argument.
<video src="img/Jade/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her throat worked around him while her hands clawed at the couch. The original Jade surfaced only in scattered flashes—furious, horrified, trying to count breaths and repeatedly losing the number. Each deeper movement replaced another thought with warm approval until a breathless little giggle escaped around him and she no longer knew why the sound terrified her.
Josh held her gaze whenever she tried to close her eyes.
<<speech "Josh">> "Read the situation, Jade. All those rules in your head, and this is the only one your body follows." <</speech>>
He dragged her into the bedroom and threw her across the soft gray bedding. She rolled onto her back, trying to create distance. He stood above her and made her open her mouth.
<<speech "Jade">> "I won't... protect... who was I protecting? Elsa? Me? I... can't hold it." <</speech>>
<<speech "Josh">> "You can't even protect your own face." <</speech>>
<video src="img/Jade/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The finish coated her tongue, lips, cheek, and neck. Her body made her lean forward and clean him even while tears collected at the corners of her eyes. Josh watched the last coherent pieces of her planning mind try to turn the humiliation into evidence, a sequence, anything usable.
He wiped one strand across her chest with his thumb.
<<speech "Josh">> "Make another plan." <</speech>>
<<speech "Jade">> "Plan... pretty plan? I can... I can be..." <</speech>> A soft, confused giggle interrupted her. She never finished.
When he left, Jade lay still for eleven minutes. She knew because the clock was directly across from the bed.
By the twelfth minute she could no longer remember what the plan had been.
<<elseif _s is 3>>
Jade arrived at Josh's house carrying a folder.
She had written his address on the front even though she knew it. Beneath it she had written three words: TALK TO ELSA FIRST. Beneath her coat she wore a black lace bra and matching panties she could not remember choosing. At the glass door she removed the coat and stood in the lingerie with a thin necklace at her throat, the conditioned body preparing itself while her practical mind remained fixed on the folder.
<img src="img/Jade/Corr2.jpg">
She stood in the bright living room staring at the instruction as though someone else had left it for her. The purpose behind it would not come. Her thoughts still formed clean lines, but the lines no longer connected. Josh sat on the pale-blue couch and watched her discover the damage.
<<speech "Josh">> "What's in the folder?" <</speech>>
<<speech "Jade">> "Bound... bound-ries." <</speech>> Her brows pinched around the difficult word. <<speech "Jade">> "A sched... sked-jool. Things Elsa should... um..." <</speech>>
His name in her mind became heat before she finished. Jade's knees pressed together.
<<speech "Josh">> "Should what?" <</speech>>
<<speech "Jade">> "Dunno." <</speech>> She gave him a small, embarrassed giggle, already more concerned with sounding cute than recovering the thought.
The admission terrified her. Josh stood and enjoyed the instant recognition in her face. He caught her gaze before she could lower it and willingly unleashed the full force of the power into the pathway he had carved through her.
Jade's body snapped rigid. The folder fell from fingers suddenly too weak to hold it. Her back arched, breasts straining against black lace while a violent flush covered her from stomach to cheeks. Her mouth opened without sound. Pulse, heat, and pressure collided inside her until both legs shook beneath her.
A chain of pelvic spasms forced her thighs apart. Fresh wetness ran through the lace. The power no longer needed to create desire from nothing; it struck every conditioned nerve at once, magnifying remembered sensation until the need for Josh drowned the meaning of the pages scattered at her feet. By the time the wave eased enough for her to breathe, her body was open and trembling for him.
He held up the black fishnet bodysuit.
<<speech "Josh">> "You don't need schedules anymore. Put on your bimbo uniform." <</speech>>
Jade stripped. There was no argument this time, only a faint crease between her brows as if she could feel that an argument belonged there. The torn-open fishnet left her breasts exposed and framed the body Josh had trained to answer him.
He pushed her onto her back on the couch and spread her legs.
<video src="img/Jade/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Each thrust shook another connection loose. Jade tried to focus on the folder lying open on the floor. The pages were full of her handwriting—careful lists, practical steps, proof that someone intelligent had once occupied her body.
<<speech "Jade">> "El... Elsa..." <</speech>>
For one instant, the name reached somewhere intact. Jade's eyes sharpened. Her hand shoved weakly against Josh's chest, but even the warning came apart on the way out.
<<speech "Jade">> "Tell her... r-run. No, wait... tell who? I had... words..." <</speech>>
Josh's expression turned cold.
<<speech "Josh">> "No." <</speech>> He drove into her harder, caught her gaze, and released another deliberate pulse while still buried inside her. <<speech "Josh">> "You don't get to solve anything. You don't get to warn anyone. You spread when I open you, and you wait when I close you. That's your whole fucking plan." <</speech>>
The pulse detonated through every place already stretched around him. Jade convulsed beneath Josh, walls clamping in a violent involuntary orgasm while heat flashed white behind her eyes. Her attempt to remember Elsa shattered into disconnected images: a name, a doorway, a hand holding a folder. None retained enough meaning to oppose the body begging Josh not to stop.
The clarity vanished. Jade's hand dropped. Her face softened into an empty, open-mouthed smile that did not belong to the woman who had spoken.
Josh tore the fishnet away and shifted her onto the gray-patterned couch, raising one leg until she lay completely exposed beneath him.
<video src="img/Jade/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jade watched the penetration with quiet fascination. Nothing behind her eyes connected it to danger, betrayal, or choice. When Josh told her to hold her leg, she held it. When he told her to look at him, she looked.
<<speech "Josh">> "Whose idea matters?" <</speech>>
<<speech "Jade">> "Yours. Bimbo Jade doesn't... do ideas." <</speech>> She giggled at how easy the sentence was.
<<speech "Josh">> "What does bimbo Jade protect?" <</speech>>
Her lips moved while the last practical reflex searched for an answer it no longer had.
<<speech "Jade">> "My makeup? Your cock? Um... Josh picks." <</speech>>
The answer was not devotion. It was a bimbo reflex occupying the space where judgment, planning, and protection had once connected.
Before allowing her to dress, Josh carried her to the white kitchen counter and made her kneel fully nude beneath the window, both hands raised into her long black hair. The pose mattered to him because it stripped away every polished outfit and practical role, leaving only the blank body of Elsa's former voice of reason.
<img src="img/Jade/Corr3.jpg">
He made her dress carefully afterward. Jade gathered the pages from the floor, straightened their edges, and placed them back inside the folder. The habits remained even when their purpose was gone.
At the door, Josh took the folder from her and tore it in half.
Jade watched the pieces fall without reacting.
<<speech "Josh">> "Go wait for Elsa somewhere else." <</speech>>
She smiled, empty and agreeable, and left.
<</if>>
</div>
<hr>
<div style="text-align: center;">
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
<p style="color:#ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
<p style="color:#00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Anya/Normal.jpg">
Anya ran the middle of the philosophy department the way other people ran railroads: schedules that held, forms that cleared, problems that dissolved before they reached a professor's desk. Students brought her chaos; she returned it as procedure. It made her the most useful person on the floor and the least questioned — which was exactly how she'd designed it.
Josh came to her because he had to. A missed presentation, a zero, an appeal that kept bouncing between offices. Anya found the shortest path through the paperwork and set the make-up assessment in the department's high-rise conference suite, where a glass balcony hung over the city.
She arrived with his file, ten free minutes, and the tote she carried everywhere — files, a water bottle, the folded change of clothes she kept for long days. He arrived with no interest in the file at all.
<<speech "Anya">> "The rules are simple. Present the argument, answer two questions, and I document that the requirement is complete. Caldwell signs the change." <</speech>>
<<speech "Josh">> "You know what he'll accept before he does." <</speech>> He said it slowly, like he was pricing her. <<speech "Josh">> "Nathan said you showed him which office could reopen anything." <</speech>>
<<speech "Anya">> "Nathan was a freshman who missed a deadline. This is you, now, wasting your ten minutes." <</speech>>
But something in her had already flagged the name. Nathan. The quiet lost boy she'd walked through the halls when she was the senior everyone trusted. This one had said it like a coin he was deciding whether to spend.
Josh stepped closer, and the space between them stopped being professional.
<<speech "Josh">> "Look at me." <</speech>>
She did — irritated, level, already composing the sentence that would end this.
He held her gaze and pushed the lust into her in one hard wave.
The sentence never came. Her breath went ragged; heat poured through her chest and stomach and between her thighs so fast her knees buckled into the balcony chair. Somewhere far back, behind her own eyes, the woman who ran schedules watched her higher functions fail one by one, leaving a single instruction burning where her composure used to be.
<<speech "Anya">> "What— please—" <</speech>>
The word had stopped knowing what it was asking for.
Josh upended her own tote at her feet, and her after-work clothes spilled out with the files: a mauve ribbed crop top with a front lace-up, the denim shorts she'd bought for a concert and worn once.
<<speech "Josh">> "The woman who was grading me can go. Strip. Show me what Anya wears when nobody's watching." <</speech>>
Her hands obeyed while she screamed at them. When the mauve top settled on her, he turned her to face the glass and made her tug the straps down herself — her full breasts spilling free over the city, her own fingers doing it, his hands following to cup and squeeze while she smiled the dopey, glowing smile the bomb forced onto her face.
<video src="img/Anya/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "There she is." <</speech>> He pressed a slow kiss to her bare shoulder. <<speech "Josh">> "Not the department's fixer. Nathan's helpful friend, standing on my balcony with her tits out because I bought her a top." <</speech>>
<<speech "Anya">> "Please..." <</speech>>
<<speech "Josh">> "A complete sentence. You like those." <</speech>>
Her mouth worked around the only sentence the heat allowed.
<<speech "Anya">> "Please use me." <</speech>>
Her tote held one more thing — the sheer white fishnet bodysuit, open at the crotch, she'd ordered months ago on a reckless night and buried at the bottom where she could pretend it didn't exist, along with the white strappy heels she'd never dared wear with it. Josh found it. He changed her into it like he was dressing a doll, then laid her back on the white bed beneath the navy-patterned pillows, the palm-tree painting watching from the wall.
And then he simply sat back and told her to touch herself. Anya's hands moved without her — fingertips circling her clit through the open mesh, hips lifting off the sheets, dark pubic hair visible through the wide-holed netting — while he watched her perform for him with her legs spread and her chest heaving, every ounce of dignity converted into display. When he leaned over her, her head tilted up into his without being told — one hand resting lightly against his face while the other drifted down her side, lips moving slowly against his mouth. The kiss went deep; her legs stayed open beneath him, hips shifting as it deepened, and when he drew back her expression had softened into open-mouthed, unresisting pleasure. The trapped woman inside felt each stroke as proof of how completely she'd been rewritten.
<video src="img/Anya/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He stopped her just short of release and dropped the appeal form on her stomach like a receipt.
<<speech "Josh">> "Assessment incomplete. Enter a provisional pass and book the follow-up yourself." <</speech>>
<<speech "Anya">> "Yes." <</speech>>
The word came out breathless and immediate and hers in no way at all.
Josh left her flushed and unfinished in the fishnet he'd chosen. Her public shell dressed, walked back to the gradebook, and entered the provisional pass exactly as instructed — and somewhere behind her own smile, the woman who had helped Nathan find his way through the university understood that she had just opened Josh's first door with her own hands.
<<elseif _s is 2>>
<img src="img/Anya/Corr1.jpg">
The follow-up was scheduled in the graduate lounge — Anya's choice of venue, the last lever of normalcy her shell still pulled. She arrived carrying the updated appeal packet, wearing what he'd instructed underneath her coat: red floral lingerie and the shiny purple-and-green cape from the department's dress-up box, the one she'd worn to one legendary faculty party. The polished academic smile sat on top of all of it like a lid.
Josh was already on the white couch.
<<speech "Anya">> "Your appeal has been provisionally accepted. Sign here and the process is complete." <</speech>>
<<speech "Josh">> "You found the most official room you could." <</speech>> He pushed the appeal packet back toward her with his foot. <<speech "Josh">> "As if a form is going to protect you from me." <</speech>>
The real Anya, somewhere inside, agreed with the insult and despised it.
<<speech "Josh">> "Take off the coat. Let me see what Nathan's friend is really wearing to the office." <</speech>>
She unbuttoned it herself. The cape and the red lace beneath it drew a slow, delighted laugh out of him, and the sound alone sent heat flooding through her — the bomb answered his amusement now, her body trained on his pleasure like a gauge.
<<speech "Josh">> "Does he know? The senior who showed him around — that she dresses on my command now?" <</speech>>
<<speech "Anya">> "Leave Nathan out of this." <</speech>>
For half a second, it almost sounded like her old voice. Josh locked eyes and refilled her to the brim.
The floral lace lasted seconds. Packed at the bottom of her own bag — because his instruction that morning had told her to bring it — was the bright-red strappy harness set she'd owned for two years and never once dared to wear, and she changed into it right there — the thin bands crossing her chest and hips, her black thigh-high stockings left on beneath.
Then she knelt on the clean white couch and took him into her mouth, blue eyes locked upward, one hand gripping the base. She worked him with the same thoroughness she brought to everything — deep, unhurried, deliberate strokes of lips and tongue, a string of saliva stretching from her lower lip each time she pulled back — because the bomb had discovered that competence was its own kind of submission, and used hers against her.
<video src="img/Anya/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Tell me what Nathan's helpful friend is now." <</speech>>
Anya pulled off just long enough to gasp it.
<<speech "Anya">> "Your whore." <</speech>>
<<speech "Josh">> "Again." <</speech>>
<<speech "Anya">> "I'm your whore." <</speech>>
The real Anya heard herself say it twice and could not close her mouth.
He stripped the harness off her and moved her to the bright tiled floor. She knelt there completely nude, head tilted back, mouth wide open, tongue out — a posture of pure availability, waiting with her hands on her thighs like an appointment he was late for. He stood over her, stroking, and told her to keep her eyes on his face; she did, all the way through, as he came across her tongue and lips, the mess dripping down her chin while her expression stayed focused and hungry, as if receiving him were a task she was determined to perform flawlessly.
<video src="img/Anya/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He smeared the last of it across her lower lip with his thumb.
<<speech "Josh">> "Sign the form whenever you like. You're already approved — by the only reviewer who matters." <</speech>>
She walked out wearing the coat over nothing, his signature secured, and spent the walk home trying to remember which parts of the last hour had been hers. The list kept coming up empty.
<<elseif _s is 3>>
<img src="img/Anya/Corr3.jpg">
Anya arrived at the high-rise suite carrying three things: Josh's fully approved appeal, the faculty review committee's schedule, and a list of the administrators authorized to remove conduct flags. The middle of the department now ran through him. Every door she'd ever guarded, she held open.
Josh took the folder without looking at it.
<<speech "Josh">> "Nathan's lucky you found him before I did." <</speech>>
Inside, where the bomb kept her, something flinched at the name — the lost boy in the hallway, the friend she'd meant to warn.
Her body only smiled and handed him the pen.
She changed into the red satin panties and sheer nude thigh-highs — her own, the set he'd long since taught her to keep in her bag — in front of the floor-to-ceiling windows with the city lit up below, unhurried, already past the point where undressing herself for him registered as an event.
Then he lay back on the bed and she climbed onto him in the luxury bedroom, facing the window, and sank down with the red panties pulled aside — natural dark hair above the stretched lips taking him in, her small breasts bouncing with every roll of her hips, one hand braced on his chest while she rode him with the frantic, polished skill his power demanded.
<video src="img/Anya/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Josh picked up her phone from the nightstand and held it up to her while she kept riding.
<<speech "Josh">> "Message Nathan." <</speech>>
Her thumbs opened the conversation — the right one, unerringly, because her hands still remembered everything.
<<speech "Josh">> "Tell him he can always count on you." <</speech>>
She typed it without slowing her hips. The reply arrived in seconds: *Always have. You're the best, Anya.*
The real Anya screamed behind her eyes. Her body laughed softly, fondly, and rode harder.
<<speech "Josh">> "That's the part I love." <</speech>> He tossed the phone onto the bed. <<speech "Josh">> "He still thanks the door for opening itself." <</speech>>
He moved her to the sunlit white leather couch and stripped her completely. Anya lay back with her legs spread high and wide, red nails resting on her lower stomach, and took him in slow, deep strokes — until thick white cum leaked from her stretched opening with every withdrawal, her fingers spreading beside it while more fluid slipped down her skin, her mouth hanging open in a low, continuous moan that had no words left in it.
<video src="img/Anya/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He withdrew and watched his work continue leaking out of her.
<<speech "Anya">> "Anything you want, Master." <</speech>>
The puppet said it. The prisoner heard it.
Anya returned to the department and remained excellent at her job — better, if anything. Forms cleared. Appeals resolved. Faculty found their decisions translated with uncanny smoothness. Josh's record was spotless; conduct flags vanished into procedure; names, schedules, and empty rooms reached him before he asked.
She also began identifying the proud ones — adult graduate students, visiting scholars, anyone sharp enough to be worth breaking — and inviting them, under the department's letterhead, to sessions that never appeared in any calendar.
Nathan still waved at her in the hall and called her the best. The woman who'd shown him around campus watched from behind her own smile as everything she'd built was handed, piece by piece, to the boy who'd learned that some doors open themselves.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div>
<h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The student union hall was loud with the mid-semester rush, and Lacy stood by the marble pillar like a statue of casual privilege — one hip jutting out, auburn hair a cascade of fire against the stone, the scent of her expensive floral perfume a wall she'd built around herself. She was the mayor's daughter, the campus queen, and she'd been summoned here by the gala committee, which meant she was in charge, which meant everyone else was furniture.
<img src="img/Lacy/Normal.jpg">
A tall guy in a faded tee walked up to her, easy and unhurried. She didn't look up from her phone.
<<speech "Lacy">> "Ugh, what do you want, foster boy?" <</speech>> Her voice was a sharp, dismissive blade. <<speech "Lacy">> "I'm busy." <</speech>>
<<speech "Jasper">> "Just admiring the view," <</speech>> he said, and his voice was low and warm, nothing like the defensive sting she expected. <<speech "Jasper">> "It's rare to see someone who looks like they were born to stand on a pedestal." <</speech>>
She finally looked up. That wasn't a line she'd heard before — everyone else either fawned or envied; nobody had ever just... stated it like a fact. No one that mocked her. But she did not process it as mockery, why? There was something in the air around him, warm and easy, like the smell of rain on dry ground, and it settled over her in a way she'd never felt — like a hand on her shoulder that she didn't want to shrug off.
<<speech "Lacy">> "You're the Havenwood one," <</speech>> she said, watching him. <<speech "Lacy">> "The foster house kids. You people always want something." <</speech>>
<<speech "Jasper">> "Everyone wants something, Lacy," <</speech>> he said, and the warmth in his voice was steady, patient. <<speech "Jasper">> "The difference is what. Most people want what you can do for them. I just — I like knowing people. The real ones, under the armor. Carolina said you're the one who actually gets things done on this campus, under all the ice." <</speech>>
Lacy blinked. Carolina — the cheerful foster girl who worked the gala committee's craft table. She'd never expected a foster kid to say something nice about her. <<speech "Lacy">> "Sweets said that?" <</speech>>
<<speech "Jasper">> "She did. She said you're the only person who remembered her name the first day." <</speech>>
That landed somewhere she didn't expect — somewhere under the crown. She'd spent her whole life making sure nobody saw under it, and this boy with the warm voice had just walked past the wall like it wasn't there. She didn't know what to do with it.
The warmth kept settling around her through the afternoon — they talked, and she found herself telling him things she never told anyone: that the gala was her father's idea, that she was always performing, that she didn't really know why she did half of it anymore. And then, at his place — a bright room with large multi-pane windows casting geometric shadows across the wall — she pulled the sparkly gray crop top down beneath her breasts, raised her arms, arched her back, and turned slowly, letting the sunlight slide over her bare chest, running her fingers through her hair, tilting her head back, looking at him with a soft, knowing smile.
<video src="img/Lacy/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She was performing — she always performed — but it felt different with him. Like the performance was real. They ended up on the pink bedspread in the white-walled room, and she lay completely nude except for the yellow ankle socks, legs spread wide, one hand cupping her breast while the other rubbed and spread her pussy, her red hair framing her face as she talked to him in a playful, teasing tone — telling him she wanted to be his dirty little slut today, asking if she could suck his cock — and she was laughing, mischievous, and for the first time in her life the performance and the real her were the same thing.
<video src="img/Lacy/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, breathing hard, and she laughed — a real laugh, not the practiced one. <<speech "Lacy">> "I don't do this," <</speech>> she said. <<speech "Lacy">> "I don't — I use people, Jasper. That's what I do. I don't let anyone close. And you — you made me feel like I didn't have to perform. I don't know what to do with that." <</speech>>
<<speech "Jasper">> "You don't have to do anything with it," <</speech>> he said, and he pulled her closer, warm and sure. <<speech "Jasper">> "You can just be here. With me." <</speech>>
She stayed. She, who never stayed anywhere, stayed. And she fell asleep in his arms, the ice queen with a warm heartbeat under her cheek, feeling — for the first time in her life — like she'd found something she didn't know she'd been missing.
<<elseif _s is 2>>
She avoided him for a week. That was the plan — she was Lacy, she didn't do this, she didn't trust people, people were tools or rivals, that was how the world worked. She threw herself back into her scheming, her gala planning, her careful empire of favors, and she told herself the warmth was a fluke.
But it never faded. It sat under her skin, low and constant, and she caught herself thinking about his voice, his laugh, the way he'd said *you can just be here*. She caught herself checking her phone. She caught herself hoping to see him in the union hall.
He came to her. That was the thing that undid her — he didn't wait for her to sort herself out. He found her at the event hall, and he brought her to the dim room with the low white surface, and the warmth settled around her the moment he walked in.
<img src="img/Lacy/Corr1.jpg">
<<speech "Lacy">> "I don't trust people," <</speech>> she said, and her voice cracked. <<speech "Lacy">> "I never have. People are tools or rivals — that's how I've survived, Jasper. That's how I became the queen. I don't — I don't know how to do this. I don't know how to let someone in. It's not like me." <</speech>>
<<speech "Jasper">> "You don't have to know how," <</speech>> he said simply. <<speech "Jasper">> "You just have to be here. You're not trapped, Lacy. You can leave whenever you want. I'm not going to make you stay." <</speech>>
That was the thing about him. He never held her. He never asked her to stay. He just kept being there, warm and steady, until staying felt like the only thing she wanted.
She knelt before him in the red lace bra and panties, hair in a loose ponytail — and she took him deep into her mouth, eyes wide and locked upward, one hand stroking the shaft, saliva coating her lips and chin, pulling back to stroke him while looking up, then taking him deeper again, her expression focused and eager. The queen who'd never given anything without getting something back worked him with both hands and mouth, and it felt good — it felt right — and she didn't understand why.
<video src="img/Lacy/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her to the floor, and she knelt in the sheer red lace bra and thong, hair loose around her face — and he pushed deep into her mouth, his hand on the back of her head controlling the pace, her cheeks hollowing with each thrust, saliva coating her chin and dripping onto her chest, thick strings of spit stretching from her lips to the tip as she worked him with both hands and mouth, eyes fluttering shut then locking back on his face.
<video src="img/Lacy/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lacy">> "I've never given anything without getting something back," <</speech>> she whispered, still on her knees, looking up at him. <<speech "Lacy">> "I've never trusted anyone. And you — you keep giving and giving and asking for nothing, and I don't know what to do with it. I don't know what to do with you." <</speech>>
He pulled her to her feet and held her. <<speech "Jasper">> "You don't have to do anything," <</speech>> he said. <<speech "Jasper">> "You just have to stay." <</speech>>
She lay in his arms that night, and she didn't know if she was brave or just lost — only that she couldn't leave him, and that for the first time in her life, she wanted to belong to someone more than she wanted to be queen.
<<elseif _s is 3>>
The gala committee was in full swing, and Lacy was holding court — clipboard, phone, a volunteer asking about seating. She was the queen of it all, exactly as always. But underneath, she'd been lying to herself all week. She'd told herself it was a fling. But she'd started planning her day around him. She'd caught herself smiling at her phone when his name lit it up. And the warmth, which had never left her, was humming under her skin like it belonged there.
She looked up from the seating chart — and Jasper was in the doorway, and the whole room went quiet in her head.
<img src="img/Lacy/Corr2.jpg">
<<speech "Lacy">> "You keep showing up," <</speech>> she said, and her voice came out softer than she meant. <<speech "Jasper">> "I keep wanting to," <</speech>> he said, crossing to her. <<speech "Jasper">> "Is that okay?" <</speech>>
She stood, and the ice queen crossed the room and took his hands, and the words came out clear and certain. <<speech "Lacy">> "I trust you, Jasper." <</speech>> She said it like she'd been holding it in her whole life, which she had. <<speech "Lacy">> "I trust you. Completely ❤️. I've never trusted anyone — I've spent my whole life keeping people at arm's length, using them, making sure no one could ever matter — and you made me want to be wanted. For me. Not for my name, not for what I can do. Just me." <</speech>>
He kissed her, and they went back to his place, and she lay back near the window with the blinds, still in the sheer red lace bra and thong, the fabric pushed aside — and he held one of her legs firmly and drove into her with steady, deep strokes, her red hair fanning out across the surface beneath her, mouth open, moaning and gasping with every thrust, her large breasts bouncing, nipples visible through the thin red lace, her eyes on him, face tight with pleasure.
<video src="img/Lacy/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her onto the soft white surface, and she lay back, one leg lifted high and held by him, the black lace thigh-highs with the shiny bands on — and he thrust into her steadily, his hand gripping her raised leg, her red hair spread out around her head as she looked up at him with an open-mouthed, pleasured expression.
<video src="img/Lacy/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, tracing patterns on his chest. <<speech "Lacy">> "I'm still going to run my committee," <</speech>> she murmured. <<speech "Jasper">> "I know." <</speech>> <<speech "Lacy">> "I'm still going to scheme and hold court and be the queen. That's who I am." <</speech>> He kissed the top of her head. <<speech "Jasper">> "I know," <</speech>> he said. <<speech "Jasper">> "And now the queen comes home to me." <</speech>>
She smiled at that, bright and real. The ice queen who'd used everyone and trusted no one had finally found the one person who wanted nothing from her — and she'd given him everything anyway. She was still the queen of the campus, still the schemer, still the girl everyone orbited. But now she orbited him — willingly, completely, for the first time in her life — and she trusted him with everything she'd never given anyone.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Josh had a list. Not written down anywhere — kept in his head, the way you keep a grudge. And near the top of it was the campus security guard who'd broken up his sophomore party, confiscated a fake ID he'd paid good money for, and written him up like he was some punk in a hallway instead of a guy who just wanted to have a good time.
Adriana. He knew her name because she'd made him learn it. She'd looked at him that night with those dark eyes — professional, bored, utterly unimpressed — and read him his rights in that flat cop voice like he was nothing. She'd told him to leave before she made it a trespassing citation. She'd dismissed him like he was a stain on her patrol route.
He'd never forgotten it. He'd never gotten past it. The campus guard with the perfect posture and the iron authority, the woman who'd made him feel small in front of his whole fraternity — she was going to pay for that.
He found her off-duty at the student union, of all places, in a black dress, picking up coffee.
<img src="img/Adriana/Normal.jpg">
Not in uniform. Not on her shift. Just a woman with glossy makeup and long dangling earrings, looking almost human. He walked up to her with a grin he didn't mean, and she clocked him in half a second — the way she always did, the way that made his blood boil.
<<speech "Adriana">> "Josh." <</speech>> Flat. Unimpressed. She didn't even make it a question. <<speech "Adriana">> "If you're here to argue about the citation, it's filed. Move along." <</speech>>
<<speech "Josh">> "Just grabbing coffee, Officer." <</speech>> He smiled, all teeth. <<speech "Josh">> "Can't a guy get a drink without being read his rights?" <</speech>>
<<speech "Adriana">> "You can get a drink. Just don't make me come find you again." <</speech>> She picked up her cup and walked past him, dismissing him like he was furniture.
That was it. That was the whole thing. She didn't even remember him — not really. He was one more frat boy in one more file. She'd ruined his night, made him small, and she'd forgotten him by morning.
The rage was a hot coal in his chest, and the eclipse fire in his veins knew exactly what to do with it. He caught up to her in two strides, grabbed her arm, spun her around — and hit her with it. All his fury, all his humiliation, all his need to see the untouchable guard break — funneled through his eyes and slammed into her like a sledgehammer.
She gasped. Her coffee cup clattered to the floor. The wave of heat crashed over her — scorching, overwhelming, melting the iron composure she wore like armor. Her knees buckled and he caught her, holding her upright, watching her pupils blow wide.
<<speech "Josh">> "There she is." <</speech>> His voice was low, triumphant. <<speech "Josh">> "The big campus guard. Look at you now — shaking, wet, burning for it. You're not so untouchable, are you?" <</speech>>
She couldn't answer. She could only look at him, mouth open, drowning in the heat he'd poured into her.
<<speech "Josh">> "Come with me. And don't make a sound." <</speech>> The command was a psychic shove, and her body obeyed before her mind could argue.
He took her to his place — a loft with floor-to-ceiling windows, the kind of place he'd never have gotten near her patrolling. He pointed at a clear acrylic chair under a purple neon glow.
<<speech "Josh">> "There's a bag on the bed. Put on what's in it. I want to see the campus guard in something that actually fits her." <</speech>>
She went. Her hands shook as she pulled out the black sparkly fishnet bodysuit — off-shoulder, sheer, barely covering anything — and the thigh-high stockings. She put them on, her body moving on its own, and came back to stand under the purple light, trembling.
<<speech "Josh">> "Look at you. The woman who wrote me up for a party, dressed like a stripper in my living room. You know what that makes you?" <</speech>> He stepped close. <<speech "Josh">> "A fucking hypocrite. Or maybe just a slut who never got the chance to admit it." <</speech>>
She should have been furious. She should have walked out. Instead she felt the heat pooling between her legs, and her body started moving for him — posing, turning, pulling the mesh away from her chest to show him her breasts, biting the fabric, arching her back to present her ass. The camera in his hand caught it all, and she couldn't stop, didn't want to stop.
<video src="img/Adriana/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "That's it. Pose for me like the little whore you are. The whole campus thinks you're so professional — wait till they see this." <</speech>>
She lay back on the chair, legs raised high and spread, and fingered herself for him — deep, steady strokes, her eyes locked on his, her mouth open in open-mouthed pleasure. He watched, arms crossed, a predator's grin on his face.
<video src="img/Adriana/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "That's it. Make a mess of yourself. Tell me how good it feels, being watched by the guy you wrote up. Go on. Say it." <</speech>>
She came with a ragged cry, her body convulsing, and when she lay limp he crouched beside her and grabbed her chin.
<<speech "Josh">> "Here's how this works now. You're gonna forget all that authority shit. You're gonna be available whenever I want you. And you're gonna be grateful for it." <</speech>> He smirked. <<speech "Josh">> "Because your body already knows who it belongs to. Your head's just slow." <</speech>>
She left his loft that night in her black dress, trembling, her body humming with a terrifying, addictive heat — and she knew, with sickening certainty, that she'd come back.
<<elseif _s is 2>>
She told herself it was a mistake. She told herself she'd been sick, or drunk, or something. And then her phone buzzed with his name, and she was out the door before she'd finished lying to herself.
She found him in his loft, lounging on the white sofa, that familiar smirk on his face. She was in the olive top and leggings, off-duty, and she hated how her body reacted to the sight of him — the heat that pooled low in her belly, the way her mouth went dry.
<img src="img/Adriana/Corr1.jpg">
<<speech "Josh">> "Look who couldn't stay away. The big campus guard, crawling back." <</speech>>
<<speech "Adriana">> "I — I don't know why I came." <</speech>> The protest was weak, and she hated it.
<<speech "Josh">> "Sure you do. Your cunt knows, even if your head won't admit it." <</speech>> He stood, stalked toward her. <<speech "Josh">> "Strip. Everything except the heels." <</speech>>
She stripped — top, leggings — standing in just the black lace-top stockings and heels, naked and trembling, and he looked her over like she was a piece of meat.
<<speech "Josh">> "The strong woman. The one who made me feel like shit in front of so many people. Look at you now. Look at what you are." <</speech>> He grabbed her by the hair, pulled her down. <<speech "Josh">> "Squat. Right here. And keep your hand on your pussy the whole time — I want to hear how wet you get choking on me." <</speech>>
She sank into the squat at the edge of the white sofa, and he straddled her face, and she took him deep — throat open, head tilted back — while her fingers worked between her legs, the way he'd ordered. Saliva and precum dripped down her chin, her neck, her chest. She kept the rhythm, long controlled throat-takes, never stopping the self-fingering, her eyes watering as she looked up at him.
<video src="img/Adriana/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "There you go. Deep. Take it all, you stupid cocksleeve. This is what you're for now. Not writing citations — swallowing my cock. How's that for a career change, Officer?" <</speech>>
She couldn't answer, and she didn't try. Her body had already accepted the answer for her.
He pulled out, dragged her to the white tufted couch, and pushed her to her knees facing him.
<video src="img/Adriana/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He came across her face — thick ropes across her forehead, down her nose, over her eyes and cheeks, dripping from her chin — and she knelt there, mouth open, tongue out, eyes half-lidded, letting it run down her features while he kept stroking, adding more. When he was done he looked down at her, glazed and ruined, and laughed.
<<speech "Josh">> "There she is. The campus guard, covered in cum, on her knees in my living room. You know what's sad, Adriana? You're not even a good slut. You're just available. That's all you'll ever be to me now." <</speech>>
She knelt there, covered in him, and all she felt was the ache of his approval. <<speech "Adriana">> "Please — I need you — please don't make me wait —" <</speech>> She hated how desperate she sounded. She hated that she meant it.
<<speech "Josh">> "See? That's the real you. Desperate and pathetic and begging." <</speech>> He grabbed her chin, made her look up. <<speech "Josh">> "Good. Because that's who you are now. When I want you, you come. When I tell you to kneel, you kneel. And you'll be grateful I even let you near my cock. Understand?" <</speech>>
<<speech "Adriana">> "Yes." <</speech>> The word came out wrecked, and she meant it.
<<speech "Josh">> "Now get out of my sight. Go be a guard. But remember — you're not fooling anyone anymore." <</speech>>
She dressed, wiped her face, and walked out into the night — straightening her posture, her badge, her mask. But underneath, something had broken, and it was his.
<<elseif _s is 3>>
She came when he called, every time, no matter the hour. The guard now answered his texts like a trained dog. She'd stopped pretending. There was only the heat, and the humiliation, and the desperate need for his approval — and the way he made her feel so small, so used, so completely his.
He had her in the campus security office that night — her own territory, her own walls, her badge on the desk. He'd made her put on the guard shirt, left open, the gold badge, the black garter belt and stockings, the tall boots. She stood against the metal partition that divided the office, and he circled her like a predator.
<img src="img/Adriana/Corr2.jpg">
<<speech "Josh">> "This is where you work, right? This is where you make people feel like shit." <</speech>> He stepped behind her, one hand gripping her hip, the other sliding up her thigh. <<speech "Josh">> "How poetic. The campus guard, getting fucked at her own post." <</speech>>
She bent forward against the partition, gripping it for support, and he drove into her from behind — hard, deep, relentless — and she cried out, open-mouthed, looking back at him with desperate, adoring eyes.
<video src="img/Adriana/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Look at you. My little guard-slut. The woman who busted my party — now she's my personal cum dump." <</speech>> He leaned in, biting her neck. <<speech "Josh">> "Say it. Say what you are." <</speech>>
<<speech "Adriana">> "I'm yours — I'm your slut — your cum dump —" <</speech>> The words came out in a broken moan, and they were the truest she'd ever spoken.
He pulled out, dragged her to the white couch in the corner, and bent her over it — sheer teal pantyhose still half-on, ripped open — and drove into her from behind again, one leg held up by the ankle.
<video src="img/Adriana/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He fucked her until he came inside her, then pulled out — cum leaking from her, dripping down her thighs — and he watched it run, then stepped around, held his cock to her face. She opened her mouth, tongue out, still bent over, and took him in, cleaning him while his cum ran down her legs.
<<speech "Josh">> "There it is. My property. My little whore in a badge." <</speech>> He crouched beside her, grabbed her chin. <<speech "Josh">> "You're gonna keep working here. You're gonna keep patrolling, keep your perfect posture, keep everyone thinking you're in charge. And every night, you're gonna come to me, and I'm gonna remind you what you really are." <</speech>>
<<speech "Adriana">> "Yes. Yes, I'm yours. I'll do anything. Use me — I want you to use me —" <</speech>>
<<speech "Josh">> "Good girl. That's the only thing you've ever been good at." <</speech>> He stood, tucked himself away, and looked down at the campus guard spread across her own office couch, cum still leaking from her. <<speech "Josh">> "Now clean yourself up. Put your badge on straight. Go be the guard everyone respects." <</speech>> His smile was cruel and satisfied. <<speech "Josh">> "And when I call, you run." <</speech>>
She dressed slowly, her hands shaking, badge gleaming, uniform crisp — the picture of professional authority, the woman who kept the campus safe. No one would ever know that at her own post, on her own couch, she'd surrendered everything to the frat boy she'd once written up — and that she'd never wanted anything more.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><<silently>>
<<set _masterA to $vices[$activeTurn]>>
<<set _masterB to $vices[$followerID]>>
<<set _weaponA to _masterA.weapon.toLowerCase()>>
<<set _weaponB to _masterB.weapon.toLowerCase()>>
<<set _rollA to random(1, 10)>>
<<set _rollB to random(1, 10)>>
<<set _scoreA to $targetNPC.weakness[_weaponA] + _rollA + setup.getClashBonus(_masterA.id, _masterB.id)>>
<<set _scoreB to $targetNPC.weakness[_weaponB] + _rollB + setup.getClashBonus(_masterB.id, _masterA.id)>>
<<set _diff to Math.abs(_scoreA - _scoreB)>>
<<set _winner to (_scoreA >= _scoreB) ? _masterA : _masterB>>
<<set _loser to (_scoreA >= _scoreB) ? _masterB : _masterA>>
<<set _rIdx to $roster.findIndex(c => c.id === $targetNPC.id)>>
/* GRUDGE TRIGGER — the rival most invested in her (progress-derived) */
<<set _oldOwner to leadingRival($roster[_rIdx], _winner.id)>>
<<if _oldOwner !== null && _oldOwner !== _winner.id>>
<<set $vices[_oldOwner].grudge to _winner.id>>
<<set $vices[_oldOwner].grudgeTimer to 3>>
<<run setup.updateStrategy(_oldOwner)>>
<</if>>
<<set $roster[_rIdx].stages[_winner.id] = Math.min(3, $roster[_rIdx].stages[_winner.id] + 1)>>
<<if $roster[_rIdx].stages[_winner.id] gte 3>> <<set $roster[_rIdx].owner to _winner.id>> <</if>>
/* KANE'S QUEST — winning the clash on the marked girl wins the race */
<<if $kaneQuest.active and $roster[_rIdx].id === $kaneQuest.npcId and $roster[_rIdx].stages[_winner.id] gte 3>>
<<set $kaneQuest.active to false>>
/* Preserve the completed target for KaneQuestReward display. */
<<set $kaneQuest.winner to _winner.id>>
<</if>>
/* Auto-Imprint */
<<if $roster[_rIdx].imprint === null>>
<<set $roster[_rIdx].imprint to _winner.id>>
<<if _winner.id === "nathan">> <<run $roster[_rIdx].traits.pushUnique("Halo Effect")>>
<<elseif _winner.id === "josh">> <<run $roster[_rIdx].traits.pushUnique("Shameless")>>
<<elseif _winner.id === "jasper">> <<run $roster[_rIdx].traits.pushUnique("Unshakeable")>>
<<elseif _winner.id === "caldwell">> <<run $roster[_rIdx].traits.pushUnique("Empty Vessel")>>
<</if>>
<</if>>
/* Wary → Invested transition */
<<if $roster[_rIdx].traits.includes("Wary") && $roster[_rIdx].stages[_winner.id] === 1>>
<<set _waryIdx to $roster[_rIdx].traits.indexOf("Wary")>>
<<if _waryIdx gte 0>> <<run $roster[_rIdx].traits.splice(_waryIdx, 1)>> <</if>>
<<run $roster[_rIdx].traits.pushUnique("Invested")>>
<</if>>
/* ============================================================
2-GIRL CLASH (Social Pandemic vs Predator's Rush)
The winner claims BOTH girls — resolve the second one here.
Always clear the rendered second-girl reference first: it is a
story variable and otherwise survives into later ordinary clashes.
============================================================ */
<<set $clashSecondNPC to null>>
<<if $clashChainGirlId>>
<<set _ccIdx to $roster.findIndex(c => c.id === $clashChainGirlId)>>
<<if _ccIdx gte 0>>
<<set $roster[_ccIdx].stages[_winner.id] to Math.min(3, $roster[_ccIdx].stages[_winner.id] + 1)>>
<<if $roster[_ccIdx].stages[_winner.id] gte 3>> <<set $roster[_ccIdx].owner to _winner.id>> <</if>>
<<if $roster[_ccIdx].imprint === null>>
<<set $roster[_ccIdx].imprint to _winner.id>>
<<if _winner.id === "nathan">> <<run $roster[_ccIdx].traits.pushUnique("Halo Effect")>>
<<elseif _winner.id === "josh">> <<run $roster[_ccIdx].traits.pushUnique("Shameless")>>
<<elseif _winner.id === "jasper">> <<run $roster[_ccIdx].traits.pushUnique("Unshakeable")>>
<<elseif _winner.id === "caldwell">> <<run $roster[_ccIdx].traits.pushUnique("Empty Vessel")>>
<</if>>
<</if>>
<<if $roster[_ccIdx].traits.includes("Wary") and $roster[_ccIdx].stages[_winner.id] === 1>>
<<set _ccWary to $roster[_ccIdx].traits.indexOf("Wary")>>
<<if _ccWary gte 0>> <<run $roster[_ccIdx].traits.splice(_ccWary, 1)>> <</if>>
<<run $roster[_ccIdx].traits.pushUnique("Invested")>>
<</if>>
<<set $clashSecondNPC to $roster[_ccIdx]>>
<</if>>
<<set $clashChainGirlId to null>>
<</if>>
/* Winner Gauge */
<<run adjustGauge(_winner.id, 20)>>
/* CRUSHING DEFEAT */
<<set $stolenNPCs to []>>
<<set _isProtected to ($noCrushingDefeat === true && _loser.id === "nathan")>>
/* The two-girl Pandemic/Rush showdown is its own prize — Crushing
Defeat never stacks extra girls onto it. */
<<if _diff >= 5 && !_isProtected && $clashSecondNPC === null>>
<<set _loserPool to $roster.filter(function(c) {
var locked = Object.values(c.stages).some(s => s >= 3);
/* Batch 42: the girl the clash was fought over is already the
winner's prize — Crushing Defeat never steals HER too (the
double-Kylie report: same girl shown and leveled twice). */
if (c.id === $targetNPC.id) return false;
return c.stages[_loser.id] > 0 && !locked && c.stages[_winner.id] < 3;
})>>
<<if _loserPool.length > 0>>
<<run _loserPool.shuffle()>>
<<run $stolenNPCs.push(_loserPool.pluck())>>
/* JASPER DOUBLE STEAL */
<<if _winner.id === "jasper" && _winner.slaves.length > 0>>
<<if random(1, 100) <= 40 && _loserPool.length > 0>>
<<run $stolenNPCs.push(_loserPool.pluck())>>
<</if>>
<</if>>
<<set $vices[_loser.id].grudge to _winner.id>>
<<set $vices[_loser.id].grudgeTimer to 3>>
<<run setup.updateStrategy(_loser.id)>>
<<for _s range $stolenNPCs>>
<<set _sIdx to $roster.findIndex(function(c) { return c.id === _s.id })>>
<<set $roster[_sIdx].stages[_winner.id] = Math.min(3, $roster[_sIdx].stages[_winner.id] + 1)>>
<<if $roster[_sIdx].stages[_winner.id] gte 3>> <<set $roster[_sIdx].owner to _winner.id>> <</if>>
<<if $roster[_sIdx].imprint === null>>
<<set $roster[_sIdx].imprint to _winner.id>>
<<if _winner.id === "nathan">> <<run $roster[_sIdx].traits.pushUnique("Halo Effect")>>
<<elseif _winner.id === "josh">> <<run $roster[_sIdx].traits.pushUnique("Shameless")>>
<<elseif _winner.id === "jasper">> <<run $roster[_sIdx].traits.pushUnique("Unshakeable")>>
<<elseif _winner.id === "caldwell">> <<run $roster[_sIdx].traits.pushUnique("Empty Vessel")>>
<</if>>
<</if>>
<</for>>
<</if>>
<</if>>
/* Only the ATTACKER spends an action. Defender intercepts free. */
<<set $actionsTaken += 1>>
<<set $targetNPC to $roster[_rIdx]>>
/* ============================================================
NAV TARGET — used by both display modes.
============================================================ */
<<set _attackerTotalMoves to (1 + $extraActions[$activeTurn])>>
<<set _attackerMovesLeft to _attackerTotalMoves - $actionsTaken>>
<<set _playerIsAttacker to ($activeTurn === $playerID)>>
<<set _playerIsDefender to ($followerID === $playerID)>>
<<if _playerIsAttacker>>
<<set $clashNavTarget to (_attackerMovesLeft gt 0 ? "Hub" : "EndTurnLogic")>>
<<else>>
/* Defender (player or CPU) spent no action — check attacker's budget */
<<set $clashNavTarget to (_attackerMovesLeft gt 0 ? "CPU_Process" : "EndTurnLogic")>>
<</if>>
<<set $clashWinnerID to _winner.id>>
/* ============================================================
FULL MODE ONLY: build scene queue.
Skipped entirely in short mode — $clashScenes stays empty,
so Hub's intercept check never fires and $activeTurn is
never hijacked. This is what prevents the wrong-vice bug
and guarantees videos always show (short mode always uses
the same reliable videoWall call as before).
============================================================ */
<<set $clashScenes to []>>
<<set $clashSavedActions to null>>
<<if $clashDisplayMode === "full">>
<<set _primaryScene to setup.sceneFor(_winner.name, $targetNPC, _winner.id)>>
<<if not Story.has(_primaryScene)>> <<set _primaryScene to _winner.name + "_Generic">> <</if>>
<<run $clashScenes.push({ scene: _primaryScene, npc: $targetNPC.name })>>
<<if $clashSecondNPC>>
<<set _secondScene to setup.sceneFor(_winner.name, $clashSecondNPC, _winner.id)>>
<<if not Story.has(_secondScene)>> <<set _secondScene to _winner.name + "_Generic">> <</if>>
<<run $clashScenes.push({ scene: _secondScene, npc: $clashSecondNPC.name })>>
<</if>>
<<for _s range $stolenNPCs>>
<<set _stolenScene to setup.sceneFor(_winner.name, _s, _winner.id)>>
<<if not Story.has(_stolenScene)>> <<set _stolenScene to _winner.name + "_Generic">> <</if>>
<<run $clashScenes.push({ scene: _stolenScene, npc: _s.name })>>
<</for>>
<</if>>
<<set _colA to ({Love: "#00ffcc", Lust: "#ff33cc", Trust: "#ffff00", Will: "#bb66ff"})[_masterA.weapon]>>
<<set _colB to ({Love: "#00ffcc", Lust: "#ff33cc", Trust: "#ffff00", Will: "#bb66ff"})[_masterB.weapon]>>
<<set _colW to (_winner.id === _masterA.id ? _colA : _colB)>>
<</silently>>
<<nobr>>
<div style="text-align:center; margin:10px 0 14px;">
<span style="color:#ff3344; font-size:1.7em; font-weight:bold; letter-spacing:6px; text-shadow:0 0 14px rgba(255,51,68,0.55);">DOMINANCE CLASH</span><br>
<span style="color:#888; font-size:0.8em; letter-spacing:2px;"><<print _masterA.name>> · <<print _masterA.weapon.toUpperCase()>> ⚔ <<print _masterB.name>> · <<print _masterB.weapon.toUpperCase()>></span>
</div>
<div style="display:flex; flex-wrap:wrap; gap:12px; justify-content:center; align-items:stretch; margin-bottom:12px;">
<div @style="'flex:1 1 150px; max-width:190px; border:1px solid #333; border-top:3px solid ' + _colA + '; background:#111; border-radius:10px; padding:10px; text-align:center;'">
<img @src="'img/Player/' + _masterA.name + '.jpg'" @style="'width:110px; border:2px solid ' + _colA + '; border-radius:8px; display:block; margin:0 auto;'">
<div style="color:#fff; font-weight:bold; margin-top:6px;"><<print _masterA.name>></div>
<div @style="'color:' + _colA + '; font-size:0.75em; letter-spacing:2px;'"><<print _masterA.weapon.toUpperCase()>></div>
<div style="color:#666; font-size:0.7em; margin-top:3px;">ATTACKER</div>
</div>
<div style="flex:0 1 150px; max-width:170px; border:1px solid #ff66cc; background:#14060f; border-radius:10px; padding:10px; text-align:center; display:flex; flex-direction:column; justify-content:center;">
<div style="color:#ff3344; font-weight:bold; letter-spacing:4px; font-size:0.85em;">VS</div>
<img @src="'img/' + $targetNPC.name + '/Portrait.jpg'" style="width:100px; border:2px solid #ff66cc; border-radius:8px; display:block; margin:6px auto 0;">
<div style="color:#ff66cc; font-weight:bold; margin-top:6px;"><<print $targetNPC.name>></div>
<div style="color:#888; font-size:0.7em; letter-spacing:2px;">CONTESTED</div>
</div>
<div @style="'flex:1 1 150px; max-width:190px; border:1px solid #333; border-top:3px solid ' + _colB + '; background:#111; border-radius:10px; padding:10px; text-align:center;'">
<img @src="'img/Player/' + _masterB.name + '.jpg'" @style="'width:110px; border:2px solid ' + _colB + '; border-radius:8px; display:block; margin:0 auto;'">
<div style="color:#fff; font-weight:bold; margin-top:6px;"><<print _masterB.name>></div>
<div @style="'color:' + _colB + '; font-size:0.75em; letter-spacing:2px;'"><<print _masterB.weapon.toUpperCase()>></div>
<div style="color:#666; font-size:0.7em; margin-top:3px;">INTERCEPTOR</div>
</div>
</div>
<div class="narrative" style="border:1px solid #333; padding:14px 18px; background:#0d0d0d; border-radius:10px;">
<p style="font-size:1.05em; margin-top:0;">
<<if $clashSecondNPC>>
<strong><<print _masterA.name>></strong> cornered <strong><<print $targetNPC.name>></strong> — and her friend <strong><<print $clashSecondNPC.name>></strong> was swept into the resonance! <strong><<print _masterB.name>></strong> bursts in to intercept. A battle of wills erupts over <strong>both</strong> of them.
<<elseif $noCrushingDefeat>>
<strong>Nathan's Shield of Love</strong> flares! He intercedes to protect his circle from <strong><<print _masterA.name>></strong>'s influence over <strong><<print $targetNPC.name>></strong>.
<<else>>
<strong><<print _masterA.name>></strong> attempted to corner <strong><<print $targetNPC.name>></strong>, but <strong><<print _masterB.name>></strong> stepped from the shadows to intercept the resonance! A battle of wills begins over her soul.
<</if>>
</p>
<div style="display:flex; flex-wrap:wrap; gap:12px; margin:14px 0;">
<div @style="'flex:1 1 220px; border:1px solid ' + (_winner.id === _masterA.id ? _colA : '#333') + '; background:' + (_winner.id === _masterA.id ? '#071515' : '#111') + '; border-radius:10px; padding:10px; text-align:center; opacity:' + (_winner.id === _masterA.id ? '1' : '0.55') + ';'">
<div @style="'color:' + _colA + '; font-weight:bold; letter-spacing:1px;'"><<print _masterA.name>>'s <<print _weaponA.toUpperFirst()>> POWER</div>
<div style="color:#aaa; font-size:0.85em; margin-top:6px;">Weakness <<print $targetNPC.weakness[_weaponA]>> · Roll <<print _rollA>> · Bonus <<print setup.getClashBonus(_masterA.id, _masterB.id)>></div>
<div style="color:#fff; font-size:2em; font-weight:bold; margin-top:2px;"><<print _scoreA>></div>
<<if _winner.id === _masterA.id>><div style="color:#00ffcc; font-size:0.7em; letter-spacing:3px; font-weight:bold;">★ WINNER</div><</if>>
</div>
<div @style="'flex:1 1 220px; border:1px solid ' + (_winner.id === _masterB.id ? _colB : '#333') + '; background:' + (_winner.id === _masterB.id ? '#14060f' : '#111') + '; border-radius:10px; padding:10px; text-align:center; opacity:' + (_winner.id === _masterB.id ? '1' : '0.55') + ';'">
<div @style="'color:' + _colB + '; font-weight:bold; letter-spacing:1px;'"><<print _masterB.name>>'s <<print _weaponB.toUpperFirst()>> POWER</div>
<div style="color:#aaa; font-size:0.85em; margin-top:6px;">Weakness <<print $targetNPC.weakness[_weaponB]>> · Roll <<print _rollB>> · Bonus <<print setup.getClashBonus(_masterB.id, _masterA.id)>></div>
<div style="color:#fff; font-size:2em; font-weight:bold; margin-top:2px;"><<print _scoreB>></div>
<<if _winner.id === _masterB.id>><div style="color:#00ffcc; font-size:0.7em; letter-spacing:3px; font-weight:bold;">★ WINNER</div><</if>>
</div>
</div>
<div style="text-align:center; margin-bottom:12px;">
<span style="border:1px solid <<if _diff gte 5>>#ff3344<<else>>#444<</if>>; color:<<if _diff gte 5>>#ff6677<<else>>#888<</if>>; border-radius:999px; padding:2px 12px; font-size:0.75em; letter-spacing:2px;">POWER GAP: <<print _diff>><<if _diff gte 5>> — CRUSHING<</if>></span>
</div>
<div @style="'border:1px solid ' + _colW + '; background:#101010; border-left:4px solid ' + _colW + '; border-radius:8px; padding:10px 14px; margin:12px 0;'">
<<if _winner.id === _masterA.id>>
<h3 @style="'color:' + _colA + '; text-transform:uppercase; margin:0 0 4px 0;'"><<print _masterA.name>> WINS!</h3>
<p style="margin:0;"><<print _masterA.name>> successfully overpowered the interference, pushing <<print _masterB.name>> back and claiming a stage of influence over <<print $targetNPC.name>>.</p>
<<else>>
<h3 @style="'color:' + _colB + '; text-transform:uppercase; margin:0 0 4px 0;'"><<print _masterB.name>> WINS!</h3>
<p style="margin:0;"><<print _masterB.name>> shattered <<print _masterA.name>>'s approach, stealing the moment and sinking their influence directly into <<print $targetNPC.name>>!</p>
<</if>>
<<if $clashSecondNPC>>
<p style="color:#ffcc00; font-weight:bold; margin:8px 0 0 0;">
<strong><<print _winner.name>></strong> claims the full prize — <strong><<print $targetNPC.name>></strong> AND <strong><<print $clashSecondNPC.name>></strong> both fall to his resonance!
</p>
<</if>>
</div>
<<if $clashDisplayMode !== "full">>
<<videoWall $targetNPC.name $targetNPC.stages[_winner.id] _winner.id>>
<<if $clashSecondNPC>>
<p style="color:#ffcc00; font-weight:bold; margin-top:15px;">The resonance sweeps up her friend <strong><<print $clashSecondNPC.name>></strong> as well — she rises to Stage <<print $clashSecondNPC.stages[_winner.id]>> under <<print _winner.name>>'s influence.</p>
<<videoWall $clashSecondNPC.name $clashSecondNPC.stages[_winner.id] _winner.id>>
<</if>>
<</if>>
<<if $stolenNPCs.length gt 0>>
<div style="border:1px solid #ff3344; background:#160404; border-radius:10px; padding:12px 16px; margin-top:14px;">
<h3 style="color:#ff3344; text-transform:uppercase; margin:0 0 6px 0; animation:pulse 1s infinite;">
<<if $stolenNPCs.length gt 1>>MASSIVE CRUSHING DEFEAT!<<else>>CRUSHING DEFEAT!<</if>>
</h3>
<p style="font-style:italic; color:#ccc; margin:0 0 8px 0;">The difference in power was overwhelming (Power Gap: <<print _diff>>). The sheer humiliation radiating from <<print _loser.name>> broke the concentration holding his web together.</p>
<<for _s range $stolenNPCs>>
<p style="margin:6px 0;">One of his subjects, <strong><<print _s.name>></strong>, felt her faith in him waver. <strong><<print _winner.name>></strong> seizes the opportunity and steals a stage of influence over her!</p>
<<if $clashDisplayMode !== "full">>
<<videoWall _s.name _s.stages[_winner.id] _winner.id>>
<</if>>
<</for>>
</div>
<</if>>
</div>
<div style="text-align:center; margin-top:20px; padding-bottom:30px;">
<<if $clashDisplayMode === "full" and $clashScenes.length gt 0>>
<<if $clashScenes.length is 1>>
[[Watch the Interaction|Clash_SceneQueue]]
<<else>>
<<set _clashWatchLabel to "Watch Interaction 1 of " + $clashScenes.length>>
<<link _clashWatchLabel "Clash_SceneQueue">><</link>>
<</if>>
<<else>>
<<if $clashNavTarget === "Hub">>
[[Return to Hub|Hub]]
<<elseif $clashNavTarget === "CPU_Process">>
[[Continue|CPU_Process]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
<</if>>
</div>
<</nobr>><<nobr>>
<h2 style="color: #00ffcc;">Shadowing & Guarding</h2>
<p><strong>These actions do not consume your turn for the day.</strong> You will wait for an opening to strike and initiate a Clash.</p>
<<silently>>
<<set _player to $vices[$playerID]>>
<<set _rivals to ["nathan", "josh", "jasper", "caldwell"].filter(id => id !== $playerID && !$vices[id].isEliminated)>>
<</silently>>
<div style="padding: 20px; border: 1px solid #444; background: #111;">
<<if _player.following === "OWN_KEYS">>
<p style="color: #ffaa00;">⚠ You are currently <strong>Guarding your Domain</strong>. Choosing a new stance will replace it.</p>
<<elseif _player.following !== null>>
<p style="color: #00ffcc;">⚠ You are currently <strong>Shadowing <<print $vices[_player.following].name>></strong>. Choosing a new stance will replace it.</p>
<</if>>
/* --- GUARD --- */
<h3 style="color: #ffaa00;">Guard Your Domain (20% Gauge)</h3>
<<if _player.gauge gte 20>>
<<link "Stalk anyone who targets your Keys or Spare Keys">>
<<run adjustGauge($playerID, -20)>>
<<set $vices[$playerID].following to "OWN_KEYS">>
<<set $stanceChosen to true>>
<<goto "Hub">>
<</link>>
<<else>>
<p style="color: #888;">Not enough Resonance (Requires 20%).</p>
<</if>>
<hr style="border-color: #333; margin: 20px 0;">
/* --- SHADOW ---
FIX: <<capture>> does not protect <<set>> inside link handlers —
only display text and attributes. Using <<linkappend>> workaround
is fragile. Instead we use a query-string style approach:
each rival gets its own named <<link>> via <<linkreplace>> is
also unreliable. Cleanest SugarCube 2 solution is to pass the
target ID through a temp variable set BEFORE the link fires,
using individual <<if>> branches per rival rather than a loop.
This is verbose but guaranteed correct. */
<h3 style="color: #00ffcc;">Shadow a Specific Rival (10% Gauge)</h3>
<<if _player.gauge gte 10>>
<<if _rivals.length is 0>>
<p style="color: #888;">No rivals available to shadow.</p>
<<else>>
/* One explicit branch per possible rival.
Only renders if that rival is in _rivals. */
<<if _rivals.includes("nathan")>>
<<link "Shadow Nathan">>
<<run adjustGauge($playerID, -10)>>
<<set $vices[$playerID].following to "nathan">>
<<set $stanceChosen to true>>
<<goto "Hub">>
<</link>><br><br>
<</if>>
<<if _rivals.includes("josh")>>
<<link "Shadow Josh">>
<<run adjustGauge($playerID, -10)>>
<<set $vices[$playerID].following to "josh">>
<<set $stanceChosen to true>>
<<goto "Hub">>
<</link>><br><br>
<</if>>
<<if _rivals.includes("jasper")>>
<<link "Shadow Jasper">>
<<run adjustGauge($playerID, -10)>>
<<set $vices[$playerID].following to "jasper">>
<<set $stanceChosen to true>>
<<goto "Hub">>
<</link>><br><br>
<</if>>
<<if _rivals.includes("caldwell")>>
<<link "Shadow Caldwell">>
<<run adjustGauge($playerID, -10)>>
<<set $vices[$playerID].following to "caldwell">>
<<set $stanceChosen to true>>
<<goto "Hub">>
<</link>><br><br>
<</if>>
<</if>>
<<else>>
<p style="color: #888;">Not enough Resonance (Requires 10%).</p>
<</if>>
<br><br>
[[Cancel|Hub]]
</div>
<</nobr>><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Isabella/Normal.jpg">
Isabella has always known Josh through Nathan. She had watched their friendship collapse and listened to both men without accepting Josh's insistence that Nathan's rejection made cruelty reasonable.
Josh also knew exactly who she was: Nathan's childhood friend and Director Maxwell Kane's niece and adopted daughter. She represented a protected world that Nathan had entered through family history and Josh could approach only by invitation.
He confronted her after a student fundraiser in a private club washed with purple and red light. Isabella still wore her white off-shoulder top, rainbow cardigan, and ripped jeans while staff cleared the last glasses.
<<speech "Josh">> "Get me five minutes alone with Kane." <</speech>>
<<speech "Isabella">> "Request an appointment." <</speech>>
<<speech "Josh">> "You can put me in the room." <</speech>>
<<speech "Isabella">> "I can't and I won't." <</speech>>
<<speech "Josh">> "Nathan never has to ask twice." <</speech>>
<<speech "Isabella">> "Nathan does not ask me to turn my father into a weapon." <</speech>> She folded the cardigan over one arm. <<speech "Isabella">> "You are angry that access requires trust after you taught people not to trust you." <</speech>>
Josh stepped into her path.
<<speech "Josh">> "Look at me when you judge me." <</speech>>
<<speech "Isabella">> "Gladly." <</speech>>
He held her eyes and detonated the Bomb.
The arousal blast hit Isabella in one violent surge. Her pupils widened. Breath caught high in her chest; heat flushed her olive skin; her nipples hardened beneath the white fabric. A deep contraction seized her pelvis, followed by sudden wetness and a throbbing need so strong that the club seemed to tilt around Josh.
Her higher thought shattered under the impact. The original Isabella remained conscious behind her eyes, but her body and speech reorganized around one command: obtain Josh and please him.
<<speech "Isabella">> "What did you do?" <</speech>> The question came through ragged breaths.
<<speech "Josh">> "I removed the part of your judgment that bored me." <</speech>>
He opened a black bag containing a silver metallic micro bikini, black fishnet stockings, and platform heels.
<<speech "Josh">> "Take off Kane's respectable daughter. Put on my property." <</speech>>
Isabella's hands obeyed while the trapped woman watched. She stripped away the cardigan, white top, and jeans, then dressed in silver and fishnet.
<<speech "Isabella">> "My father will—" <</speech>>
<<speech "Josh">> "Your father is not in this room." <</speech>> He snapped one silver strap against her skin. <<speech "Josh">> "Dance." <</speech>>
At the chrome pole, Isabella arched, circled, and rolled her hips. She turned to present her rounded ass, bent forward, and looked back with a soft expression the prisoner inside had not chosen. She sank into a deep squat, ground against the pole, then lowered herself to the wooden floor with her silver-clad hips raised.
<video src="img/Isabella/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Kane's principled girl on the floor because I told her to move." <</speech>>
<<speech "Isabella">> "Please..." <</speech>>
The real Isabella tried to say *help me*. The Lust Bomb completed the sentence differently.
<<speech "Isabella">> "Please make it stop hurting." <</speech>>
<<speech "Josh">> "You get relief when I decide." <</speech>>
Josh removed the silver top and fastened a sparkling dollar-sign choker around her throat before taking her into the purple-lit bedroom. Isabella lay topless on the patterned bed with the fishnets and choker on. Josh buried his face between her spread thighs. She propped herself on her elbows, watched him with furrowed brows, then tipped her head back as pleasure forced gasps and small smiles through the horror behind her eyes.
<video src="img/Isabella/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Josh stopped before the pressure fully released.
<<speech "Josh">> "Dress. Go home. Smile at Kane and remember that his name protected nothing." <</speech>>
Isabella left wearing the dollar-sign choker beneath her ordinary clothes. She could still perform familiar habits and repeat expected conversations. Behind them, the original woman remained trapped in a mind already cracked by the first overload.
<<elseif _s is 2>>
<img src="img/Isabella/Corr1.jpg">
Isabella returned to the purple bedroom because Josh's message made the unresolved pressure inside her flare until she could not hold a conversation or sit still. She arrived in ordinary clothes with a warning rehearsed under her breath.
<<speech "Isabella">> "My name is Isabella Kane. My father is Maxwell Kane. Nathan has known me since—" <</speech>>
Josh shut the door.
<<speech "Josh">> "You practiced remembering yourself." <</speech>>
<<speech "Isabella">> "My name is Isabella." <</speech>> Her fingers worried at the hidden choker. <<speech "Isabella">> "You cannot keep doing this without leaving evidence." <</speech>>
<<speech "Josh">> "You are the evidence." <</speech>>
He forced her back into black fishnets and left her topless with the dollar-sign charms visible. Her dark hair was gathered into a messy high bun with loose strands around her face.
<<speech "Josh">> "Tell me why Nathan matters." <</speech>>
<<speech "Isabella">> "He is my oldest friend. His father and mine—" <</speech>> She lost the sentence when Josh caught her gaze.
The second Lust Bomb struck the fractures left by the first. Heat and need flooded her again, but the damage did not remain confined to desire. Her rehearsed warning scattered. Nathan's face, Kane's voice, and the idea of asking for help broke into disconnected images that would not stay in order.
<<speech "Isabella">> "Nathan is... I know Nathan." <</speech>>
<<speech "Josh">> "On your knees." <</speech>>
Isabella moved onto all fours on the geometric sheets with her rounded ass high. She wrapped one hand around Josh's cock and took him deep. Her cheeks hollowed; her tongue worked the underside; saliva glistened while her heavy eyes struggled to hold one thought longer than a few breaths.
<video src="img/Isabella/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She pulled back.
<<speech "Isabella">> "My father... meeting... I was supposed..." <</speech>>
<<speech "Josh">> "You were supposed to become useful." <</speech>> He pushed her down again. <<speech "Josh">> "That is the only appointment you keep now." <</speech>>
Josh rolled her onto her back and pinned butterfly clips into her loosened dark hair. Isabella remained topless in the black fishnets and silver choker. He came across her face, tongue, chest, and the dollar-sign charms. She kept her mouth open, licked and tasted the load, then cleaned him with slow strokes while a soft smile repeatedly appeared and vanished.
<video src="img/Isabella/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Josh held her marked face and detonated the Lust Bomb again before her breathing settled.
Isabella tried to retreat into facts.
<<speech "Isabella">> "I am twenty-one. My father is... my father is..." <</speech>>
<<speech "Josh">> "Who owns the Kane girl?" <</speech>>
<<speech "Isabella">> "You." <</speech>>
<<speech "Josh">> "Who is Nathan?" <</speech>>
Her mouth opened. Nothing coherent arrived. The memory existed, but the relationship attached to it had been burned away beneath repeated waves of lust.
<<speech "Isabella">> "Nathan... old. Nice. I..." <</speech>> She smiled suddenly. <<speech "Isabella">> "Did I do good?" <</speech>>
<<speech "Josh">> "You did what property does." <</speech>>
The original Isabella did not survive the final overload intact. By the end of Level 2, the woman behind her eyes had collapsed into loose memories, conditioned phrases, and a craving that interrupted every attempt to think.
<<elseif _s is 3>>
<img src="img/Isabella/Corr3.jpg">
Isabella no longer arrived with schedules, plans, or arguments. Josh brought her to the purple bedroom and pointed toward the bed. She obeyed with the dollar-sign choker around her neck and black fishnets framing her legs.
<<speech "Josh">> "Who is Maxwell Kane?" <</speech>>
Isabella stared at him. Her lips moved once before sound appeared.
<<speech "Isabella">> "Silver hair. Big office. Father." <</speech>> She touched the choker and lost the thread. <<speech "Isabella">> "Good girls wear this." <</speech>>
<<speech "Josh">> "And Nathan?" <</speech>>
<<speech "Isabella">> "Nathan... kitchen. Tickets. He—" <</speech>> Her thighs rubbed together. A bright, misplaced laugh interrupted the memory. <<speech "Isabella">> "Master, it hurts again." <</speech>>
There was no stable public Isabella waiting behind the damage. Complex questions produced fragments. Familiar names drifted free of chronology. She could imitate a smile or repeat a sentence for a short conversation, but any pressure made the performance dissolve into need.
Josh did not consider that a defect. Utility had never mattered as much as annihilation.
He pushed her onto her back on the patterned sheets. Isabella raised one fishnet-framed leg while he took her in steady strokes. The choker caught the purple light. Her small breasts shifted; her brows drew together; broken sounds escaped her open mouth.
<video src="img/Isabella/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "What are you thinking?" <</speech>>
<<speech "Isabella">> "Thinking..." <</speech>> She searched for the word and smiled when she could not find it. <<speech "Isabella">> "You. More." <</speech>>
<<speech "Josh">> "That is all you have room for." <</speech>>
In the bright adjoining space beside a white couch, Josh stripped her completely. Isabella lay on her back with dark hair spread out, legs open, and one hand on her lower belly. Her face shifted from wide-eyed intensity to sudden smiles and soft laughter with no thought connecting the expressions. She briefly covered her face, forgot why, and lowered the hand to brush her own wetness while he continued taking her.
<video src="img/Isabella/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Josh finished inside her.
<<speech "Josh">> "Say what you are." <</speech>>
<<speech "Isabella">> "Yours." <</speech>>
<<speech "Josh">> "Say your name." <</speech>>
Isabella frowned. Her lips shaped the beginning twice.
<<speech "Isabella">> "Isa..." <</speech>> She looked down at the choker and brightened. <<speech "Isabella">> "Master's good girl." <</speech>>
Nathan noticed that she repeated childhood anecdotes out of order and sometimes stopped in the middle of his name. Kane saw his adopted daughter lose appointments, stare through questions, and smile at nothing. Brief rehearsed explanations could hide her condition only from strangers.
Josh made no effort to preserve the woman they loved. He had wanted Nathan's protected world marked by his ownership, and Isabella's obvious ruin made the claim more satisfying.
She retained no strategy, principled judgment, or coherent private self. Only memory fragments, reflexive warmth, and the need for Josh remained—and even those surfaced in whatever order the next overload allowed.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The afternoon sun baked the driveway, turning the air thick and hazy. Josh leaned against the side of Nathan's house, a scowl etched onto his face. He hated being here — hated the forced camaraderie, hated the suffocating aura of suburban normalcy. He was only here because Nathan had practically begged him to come over, a pathetic attempt to patch over the latest in a long line of Josh's fuckups.
<img src="img/Kylie/Normal.jpg">
The back door slid open, and Kylie stepped out. Nathan's little $relation, all of nineteen, long straight dark hair shimmering in the sun, expressive dark eyes that missed nothing. A tiny halter top, distressed shorts, a picture of youthful, careless confidence.
<<speech "Kylie">> "Hey, Josh. Nathan's still in the shower. He said you could wait out here." <</speech>> Her voice was a light, playful melody. She gave him a once-over, a flicker of her $malerel's protective skepticism in her eyes, quickly replaced by natural, open curiosity.
<<speech "Josh">> "Great. Just what I wanted — to be babysat by the little $relation." <</speech>> A low, dismissive growl, a reflex to keep the world at bay.
<<speech "Kylie">> "Someone's got to do it. You look like you're about to kick a puppy." <</speech>> She shot back with a playful, sarcastic smirk. She wasn't scared of him. They basically grew up together.
He could feel the power stirring inside him. He didn't want to banter with her. He wanted to wipe that smug, knowing smirk off her face, to see the frantic, messy reality hiding underneath all that sweet, familial affection.
<<speech "Josh">> "You think you're so clever, don't you? So sweet. So perfect. It's disgusting." <</speech>> He focused on his resentment — of her easy confidence, of her place in a loving family that was a constant, mocking reminder of everything he'd lost — and let the power flow. A wave of pure, unadulterated compulsion. Obey me. It feels right to obey.
Kylie gasped, a strange, sudden warmth blooming in her chest, spreading downwards like a wildfire. Her breath hitched, and the sweet, affectionate part of her mind began to dissolve like sugar in hot water. A profound, unnerving need settled over her. It felt... right. To stop being so sweet. To start obeying.
<<speech "Kylie">> "What... what are you doing to me?" <</speech>> A breathy, uncertain whisper, a stark contrast to her usual light, teasing tone.
<<speech "Josh">> "Giving you something to do besides being annoying. Go to your room. And look in your nightstand. You'll find a little toy. Bring it here." <</speech>>
She turned and walked back into the house, her movements no longer confident and playful, but clumsy and robotic. She entered her room and opened the drawer, hands trembling. She found it — a sleek, pink dildo, a secret she kept hidden even from herself. She walked back out, dark eyes hazy and clouded with a confused, addictive longing.
<<speech "Josh">> "Good girl. Now lie down on that lawn chair. And use that toy on yourself. I want to watch you come." <</speech>>
She complied without question, lying back on the sun-warmed plastic, pulling down her shorts and cotton panties. She began to rub the dildo against her clit, hips grinding, movements frantic and desperate. The backyard was a silent, captive audience to her degradation. She was no longer a sweet, affectionate $relation. She was a desperate, writhing animal, chasing a release tied directly to the monster who had broken her.
<video src="img/Kylie/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her body tensed, and with a final shuddering cry she came, convulsing on the chair, a wave of brutal pleasure so intense it left her a limp, trembling mess.
<<speech "Josh">> "Not bad. But I think you need a real man to show you how it's done." <</speech>>
He knelt in front of her, looked down at the slick, swollen heat of her pussy, and leaned in — his tongue a hard, insistent invader, claiming her, marking her as his own. He held her hips like iron, forcing her to submit completely. She was no longer a sweet, affectionate $relation. She was a vessel for his pleasure.
<video src="img/Kylie/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She came again, screaming, and lay there trembling, mind a blank, placid canvas. Josh stood up, a smug, predatory smirk on his face. He had broken her, and in doing so, he had made her his.
<<speech "Josh">> "Now that's what I call a warm welcome." <</speech>>
<<elseif _s is 2>>
The house was a minefield of memories, and Kylie was walking through it with a blindfold. Every creak of the floorboards, every hum of the refrigerator, was a trigger, a reminder of the sun-drenched afternoon in the backyard. She had tried to scrub the memory from her skin, but it was no use. The memory was a brand. She was an addict, and her own bedroom — once a sanctuary of teenage dreams — was now just a place where she waited, her body aching with a need she couldn't name.
<img src="img/Kylie/Corr1.jpg">
The door opened without a knock. She was lying on her bed, staring at the ceiling, but she knew he was there before she saw him. The air grew heavy, charged with his resentful, predatory energy.
<<speech "Josh">> "Miss me?" <</speech>> A low, mocking drawl that scraped against her raw nerves.
<<speech "Kylie">> "Josh... you can't be in here. Nathan's downstairs." <</speech>> A hoarse, desperate whisper, more plea than command. She pulled her covers up to her chin, a childish, futile gesture.
<<speech "Josh">> "Good. Let him listen. Maybe he'll learn what a slut his little $relation really is. You liked what I did to you, didn't you? You liked being a dirty little girl instead of a sweet, innocent princess." <</speech>>
He sat on the edge of her bed, the mattress dipping under his weight, a physical invasion of her space.
<<speech "Kylie">> "I... I don't know..." <</speech>> A choked sob, a lie transparent even to herself.
<<speech "Josh">> "Liar. Your body knows. Now you're going to show me how grateful you are. Get up." <</speech>>
Her body moved on its own, her mind a screaming, horrified passenger. She sat up, covers pooling around her waist, dark eyes wide with a mixture of fear and desperate, addictive longing.
<<speech "Josh">> "You spend all your time teasing and playing, acting like you're so cute and innocent. Well, now you're going to learn a new way to use that mouth. Unzip my pants." <</speech>>
Her trembling fingers fumbled with his jeans. She pulled them down, and his cock sprang free — right there in front of her face, a symbol of her complete and utter submission.
<<speech "Josh">> "Open your mouth. And you're going to take all of it. I don't want to hear you gag. I don't want to hear you complain. I just want to feel your throat around my dick. Do you understand?" <</speech>>
<<speech "Kylie">> "Yes... I understand." <</speech>> A soft, breathy whisper, familiar and terrifyingly alien.
He guided himself into her mouth, hands tangling in her dark hair, holding her head in a brutal, unyielding grip. He didn't let her adjust. He just started to fuck her face — hips pistoning, his cock a hard, unforgiving invader. She was no longer a sweet, affectionate $relation. She was a vessel for his pleasure.
<video src="img/Kylie/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He could feel the tension building, the wet, tight heat of her mouth, the desperate, muffled sounds she was making. He was no longer just her $malerel's friend. He was her master, and she was his to do with as he pleased.
<<speech "Josh">> "That's it. Take it all. Look at you — Nathan's sweet little $relation, choking on my cock in her own bedroom. What do you think he'd say if he walked in right now?" <</speech>>
He pulled out, breathing hard, and pushed her back onto the pillows. She lay there, face flushed, lips swollen, looking up at him with half-lidded eyes — waiting, already hungry for more.
<video src="img/Kylie/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He stroked himself above her face, and she opened her mouth, tongue out, eyes locked on him — and he came across her tongue, her lips, her cheeks, thick ropes, and she kept her mouth open, smiling through the mess, then leaned in to lick the last drops clean, a satisfied, cum-smeared grin on her face.
<<speech "Josh">> "There's my girl. You're not sweet anymore, are you? You're mine. And every time you smile at your $malerel like you're still innocent, you'll remember this. You'll remember what you really are." <</speech>>
She went back downstairs that evening, and smiled at Nathan, and told him Josh had left — and the lie came easy, and it tasted like him.
<<elseif _s is 3>>
<img src="img/Kylie/Corr3.jpg">
The house was a cage, and Kylie was a trembling animal trapped within it. The familiar scent of her own lavender laundry detergent on her bedsheets was a cruel joke, a constant reminder of the innocence that had been violently ripped away from her. Every creak of the floorboards sent a jolt of pure, undiluted terror through her body. She was an addict, and her own bedroom — once a sanctuary of teenage dreams and secrets — was now just the place where she waited, her body aching with a need that was both a source of shame and her only reason for living.
The door to her room opened without a sound. She was lying on her side, facing the wall, trying to make herself small, trying to disappear. But she knew he was there. The air grew heavy, charged with his resentful, predatory energy.
<<speech "Josh">> "Playing hard to get? I like that." <</speech>> His voice was a low, mocking drawl that scraped against her raw nerves. He crossed the room in a few long, predatory strides and sat down on the edge of her bed, the mattress dipping under his weight, a physical invasion of her personal space.
<<speech "Kylie">> "Please... Josh... not again." <</speech>> Her voice was a hoarse, desperate whisper, a plea from a part of her that was already dead.
<<speech "Josh">> "Not again? Oh, we're just getting started. You've learned how to use your mouth. Now you're going to learn how to be a proper little bitch for me. Take off your clothes. All of them." <</speech>> His voice was a low, commanding growl. The command, amplified by the dark magic that was now a part of her, was an irresistible order.
Her body moved on its own, her mind a screaming, horrified passenger. She stood up, her movements clumsy and robotic, and peeled off her clothes, until she was standing naked and vulnerable in the cold, sterile room.
<<speech "Josh">> "On the bed. On your hands and knees." <</speech>> He pointed to the bed, the pastel-colored comforter a stark contrast to the dark, depraved act he was about to commit.
She complied without question, her body a willing, eager canvas. She got on her hands and knees, her petite frame a pale offering in the oppressive darkness, her ass up in the air, a silent, willing invitation.
<<speech "Josh">> "You're Nathan's little $relation, right? His perfect, innocent little princess. Well, not anymore. From now on, you're just this. A bitch in heat for me to fuck. Say it." <</speech>>
<<speech "Kylie">> "I'm... just a bitch in heat for you to fuck." <</speech>> Her voice was a choked sob, a declaration of surrender that was also a prayer of fulfillment.
He positioned himself behind her, his weight a familiar, possessive pressure. He guided his cock to her slick, swollen entrance, the head of it teasing her, a promise of the ultimate violation. <<speech "Josh">> "This is your new purpose." <</speech>>
He thrust into her, a single, brutal movement that stole her breath and shattered the last remnants of her identity. She cried out, a loud, shameless moan swallowed by the quiet, defiled sanctuary of her own room. He began to move, his hips pistoning, his cock a hard, unforgiving invader, claiming her, marking her as his own. He held her hips, his grip like iron, forcing her to take him deeper, to submit completely to the rhythm of his possession.
<video src="img/Kylie/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She was no longer a sweet, affectionate $relation. She was a vessel for his pleasure, a willing, eager participant in her own complete and utter defilement. He was lost in the sensation, in the tight, wet heat of her, in the desperate, needy sounds she was making. He was no longer just her $malerel's friend. He was her master, and she was his to do with as he pleased.
He pulled her up and took her to the living-room sectional, and she straddled him in reverse-cowgirl, body leaned forward so her round ass filled the frame. His hands spread her cheeks while she rode him, his cock sliding in and out of her wet pussy, her skin glistening, her pussy clenching around him with every bounce.
<video src="img/Kylie/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He came with a shuddering groan, his release a hot, salty flood deep inside her — a final, possessive claim on the girl who was supposed to be his friend's little $relation. He collapsed on top of her, a heavy, suffocating weight, his breath hot against her ear, then pushed himself up. He looked down at her — the sweet, affectionate $relation now a used, trembling mess on her own bed, his release leaking out of her, staining the pastel-colored comforter. He had broken her, and in doing so, he had made her his. Forever.
<<speech "Josh">> "Get cleaned up. And get back to bed. And don't you dare forget who you belong to. Every time you look at your $malerel, I want you to remember this. I want you to remember what a dirty little slut you are for me." <</speech>>
He turned and walked away, leaving her there, a broken doll in the quiet, defiled sanctuary of her own bedroom. She stayed there for a long time, on her hands and knees, the feel of his release a permanent brand on her soul, the echo of his command the only thought in her shattered mind. The sweet kid who'd once wrinkled her nose at her $malerel's sweat was gone. What was left waited in the dark, for the man who owned her, and she'd never get any of it back.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The detention room was the same four walls Rae had memorized by now — buzzing fluorescent lights, the clock that moved slower than anywhere else on campus, and the smell of dust and floor wax. She was here for the third time this semester, and she'd made sure the whole class heard exactly what she thought of the substitute who'd sent her. That was the point. Better to be the one everyone expected to fail than to sit there quietly and fail anyway.
<img src="img/Rae/Normal.jpg">
Nathan came in with a stack of notebooks under his arm, nodded at the supervisor, and took the desk at the front. The tutoring program sent literature students to the detention hall twice a week to help with essays. He'd signed up because it seemed like the kind of thing that mattered — kids who'd been written off, who just needed someone to believe they weren't the problem the file said they were.
Rae watched him set up with open disdain. <<speech "Rae">> "Oh, great. A tutor. Because what I need is a lecture from some do-gooder with a poetry collection." <</speech>>
Nathan looked up, and instead of a rebuke, there was something almost amused in his warm brown eyes. <<speech "Nathan">> "I don't lecture. I edit. Do you have an essay that's giving you trouble?" <</speech>>
<<speech "Rae">> "I don't have an essay. I have a grand total of zero essays, and zero plans to write one." <</speech>> She crossed her arms, the septum ring glinting as she tilted her chin up. <<speech "Rae">> "You can go ahead and report me. Everyone else does." <</speech>>
<<speech "Nathan">> "I'm not here to report you." <</speech>> He pulled a folder out of his stack, and her stomach dropped — her name was on it. <<speech "Nathan">> "Your professor flagged your second essay as missing. You can still pass the semester if it's in on time. I read your first one, by the way. The part about the city as a cage — that was real. Most people write essays to sound smart. You wrote that one like you meant it. You put a lot of effort into it." <</speech>>
The room went very quiet. Rae had spent years perfecting the art of not caring, and no one had ever — not once — read something she'd written and seen the actual girl underneath the ink. It hit her in the chest like a wave of heat that wasn't hot at all. Warm. That was the only word for it. A warmth that spread from her sternum down through her stomach and into her fingertips, and for a second she forgot to be defiant, forgot to have an answer ready, forgot everything except the fact that this soft-eyed stranger had read her words and meant them.
<<speech "Rae">> "The essay's dumb," <</speech>> she managed. <<speech "Rae">> "It's not even about the city. It's about — " <</speech>> She stopped. She didn't tell people about the cage stuff. <<speech "Rae">> "It's about being the kid everyone's waiting to fail, so you fail first on purpose. That's the cage." <</speech>>
Nathan's expression didn't pity her. That was the thing. It just... saw her. <<speech "Nathan">> "Then let's write the essay about how you get out of it." <</speech>>
They worked through the hour. By the time the supervisor called release, Rae had three pages of notes in his handwriting and a feeling she couldn't name sitting warm in her chest. She was still trying to name it that evening, walking past the union, when she saw the lights of the annual society gala and, at the edge of the crowd, Nathan in a white dress shirt, navy vest, and a black bowtie, looking like he'd stepped out of a different world than the one she lived in.
She told herself she wasn't going to talk to him. Then she crossed the lawn anyway, in the dark olive dress she'd worn because her roommate had made her buy it and she'd never had anywhere to wear it.
He lit up when he saw her. That was the other thing — nobody lit up when they saw her. They braced.
They talked until the gala thinned out, and then he asked if she wanted to see his place, and she went, because the warm thing in her chest had decided before she had. His apartment was bright and clean, a white sectional under tall windows. She didn't remember climbing into his lap. She only remembered the way he kissed her — slow and deep, hands cradling her face like she was something precious instead of a problem — and the way the warmth finally had a shape.
<video src="img/Rae/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He walked her home late, and she lay awake on the green bedspread in her cramped dorm, the dark pressed against the window, and thought about him until she couldn't think at all. Her hand drifted down between her legs without her permission, and she touched herself thinking of his voice, his eyes, the way he'd said her essay was real — coming hard against her own fingers, biting her lip so her roommate wouldn't hear, the dildo on the nightstand forgotten and unused.
<video src="img/Rae/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she stared at the ceiling and whispered into the dark: <<speech "Rae">> "This is a terrible idea." <</speech>> She was already planning how to see him again before she finished the sentence.
<<elseif _s is 2>>
She showed up at his apartment in the soft pink set she'd bought on impulse — a crop top and matching pajama pants with polka dots — because she'd told herself she was just coming by to thank him for the notes, and then she'd stood in front of the mirror for twenty minutes trying to decide what "thank you" wore. The answer, apparently, was the pink thing.
<img src="img/Rae/Corr1.jpg">
<<speech "Rae">> "I'm not staying," <</speech>> she announced at his door. <<speech "Rae">> "I just — I wanted to say the essay's in. Your notes were actually good, so don't let it go to your head." <</speech>>
Nathan smiled that warm smile, and she felt the pink set get tighter. <<speech "Nathan">> "Come in. I made tea." <</speech>>
She came in. She stayed. She stayed through the tea and through a movie she didn't watch, because she was watching him instead — the way he tucked his feet under him on the couch, the way he laughed at a joke she didn't hear. And when he pulled her across his lap, still in the vest and bowtie he'd worn to some department thing earlier, his pants open, she went without a fight, curling over his thighs in just the stockings she'd worn under the pink set, taking him into her mouth because the warmth told her this was right and she had stopped fighting the warmth a while ago.
<video src="img/Rae/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She worked him slow and deep, cheeks hollowing, and every time she glanced up he was watching her with that soft intensity, one hand resting on the back of her head like he was anchoring himself to her. She'd never let anyone see her like this — vulnerable, wanting, trying. She'd never let anyone hold the part of her that cared.
Later, in his bedroom with the big windows, she knelt naked on the white bed and took him deep again, strings of saliva stretching between her lips and his cock, and the whole time some voice in her head kept whispering: this is too fast, this isn't you, you don't do soft. She pulled off, breathing hard, and said it out loud.
<<speech "Rae">> "I don't do this. I don't — I've never let anyone this close. People like you don't stick around for people like me. That's not how it works." <</speech>>
<video src="img/Rae/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Nathan's thumb traced her jaw, gentle, and the warmth in her chest flared. <<speech "Nathan">> "I'm not going anywhere, Rae. I know you're not used to that. I know it's easier to push first. But I'm right here." <</speech>>
She wanted to believe him. She wanted it so badly it scared her more than any of the fights she'd ever picked. And that night she lay in his arms with her head on his chest, listening to his heartbeat, and for the first time in her life she didn't have a single wall up — and she was terrified of how much she already wanted to stay.
<<elseif _s is 3>>
He booked the hotel room so they could get off campus — a quiet place away from the eyes and the files and the reputation she'd spent years building. Dim yellow lamps, patterned wallpaper, a bed too big for one person. She'd told him it was a waste of money. She'd also brought nothing but the thin choker and the boots, and let him peel them off her one by one at the door.
<img src="img/Rae/Corr3.jpg">
<<speech "Rae">> "You know everyone thinks you're crazy, right? The campus golden boy and the problem student." <</speech>> She was laughing, but there was a softness at the edges of it. <<speech "Rae">> "I've been to detention three times this semester. Your friends must think you've lost your mind." <</speech>>
Nathan pulled her close, warm palms on her hips, and kissed the corner of her mouth. <<speech "Nathan">> "I don't care what they think. I care about you. The girl who writes essays about cages because she's been stuck in one her whole life. I'm not the one who's crazy, Rae. I just want you to be you." <</speech>>
Her throat closed. Nobody had ever said anything like that to her. Nobody had ever looked at her the way he was looking at her now — like she was the whole room.
<<speech "Rae">> "I love you," <</speech>> she said, and the words came out before she could stop them, and she didn't want to stop them. <<speech "Rae">> "I know it's fast. I know you're probably thinking — but I've never felt anything like this. I love you ❤️" <</speech>>
He kissed her so deeply she forgot to breathe, and then he was behind her on the big white bed, hands firm on her hips, driving into her slow and deep, and she looked back at him over her shoulder with her mouth open, rocking against every stroke, the warmth a tide that carried everything else away.
<video src="img/Rae/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her on her back and lifted her legs high, sinking into her again, and she watched him through half-lidded eyes — the boy who'd read her essay, who'd seen the cage, who'd never once made her feel like a problem. When he pulled out, thick and leaking onto the sheets, she pulled him back down and held him, whispering his name against his mouth.
<video src="img/Rae/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Later, tangled in the hotel sheets, she pressed her forehead to his and smiled — the real one, the one she kept hidden. <<speech "Rae">> "I still hate my essay," <</speech>> she whispered. <<speech "Nathan">> "No you don't." <</speech>> She laughed, and it was warm, and for the first time the cage felt a little more like a home. She still pushed back at the world every day — that was hers, that was who she was. But at night she belonged to him, and she had never wanted anything more in her life.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Rae was leaning against the railing outside the humanities hall, scrolling her phone, working up the will to actually walk into her nine o'clock. She'd been to class twice this month. Another skip and Dr. Caldwell's office would have a new reason to know her name, and she was running out of reasons she could afford.
<img src="img/Rae/Normal.jpg">
She felt him before she saw him. That was the strange part. The air changed — something warm and quiet, like rain on dry ground, like the second before a storm breaks. She looked up, and a guy was walking past with a to-go cup from the campus café, steam curling off the top, and the smell of him hit her all over again — rain and honey and something underneath she couldn't name — and her shoulders came down an inch without her telling them to.
He smiled at her. Not the wary smile people gave the problem student. Just a smile. <<speech "Jasper">> "Morning." <</speech>>
<<speech "Rae">> "Morning," <</speech>> she said, and the word came out softer than she'd meant it to.
That was the whole conversation. That was all it took. He was heading for the lecture hall, and some wire in her chest that she'd been holding taut for years went slack. She caught up to him in three steps.
<<speech "Rae">> "Hey." <</speech>> He turned. <<speech "Rae">> "What's your first class?" <</speech>>
He told her — some sociology thing she'd never heard of, some professor she'd never met. She nodded once, grabbed his wrist before she could think about it, and pulled. <<speech "Rae">> "You're not going to that." <</speech>>
<<speech "Jasper">> "I'm not?" <</speech>> He was amused, not alarmed. That was the other strange part — he didn't pull his wrist back.
<<speech "Rae">> "We're skipping." <</speech>> The words came out of her like they'd been waiting to be said. <<speech "Rae">> "Come on." <</speech>>
She dragged him down the corridor and into the empty classroom she knew was free this hour — she knew the building's schedule better than the janitor, from all the detentions. The door clicked shut behind them. The blinds were half-drawn, the morning sun falling across the desks in bars of gold. It smelled like chalk dust and floor wax and the rain-and-honey thing that came off him in waves.
He set his coffee on a desk and watched her, curious and calm. <<speech "Jasper">> "You do this often? Drag strangers into classrooms?" <</speech>>
<<speech "Rae">> "First time," <</speech>> she admitted. <<speech "Rae">> "You're special." <</speech>>
She shrugged off the sundress — she'd brought the big black tee in her bag because the forecast said cool, and now she pulled it over her head, and it fell to mid-thigh, and she stood in the bars of light with her back to the chalkboard, and the air between them hummed with that thing she still couldn't name.
She gripped the hem of the tee. Lifted it slow. She watched his eyes follow the fabric up — past her stomach, past her ribs — and she bared herself for him in the empty classroom, cupping her breasts, holding his gaze, the slow, deliberate tease of it making the whole room feel like it was holding its breath.
<video src="img/Rae/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Rae">> "This is the part where you say something." <</speech>>
<<speech "Jasper">> "You're beautiful," <</speech>> he said, and he meant it, and the soft way he said it undid something in her.
<<speech "Rae">> "That's not — " <</speech>> she started, and stopped. She let the tee fall and grabbed his wrist again. <<speech "Rae">> "Come on. If we're going to do this, I know a better place." <</speech>>
<<speech "Jasper">> "Class?" <</speech>> he asked, amused.
<<speech "Rae">> "Class is over." <</speech>>
She pulled him out of the classroom, out of the building, off campus entirely, and her phone buzzed in her bag — the lecture she'd skipped starting without her. She silenced it and didn't look at it again.
The cove was her secret — turquoise water, rocky cliffs, a white lounge cushion she'd found washed up and claimed years ago. Nobody came here. Nobody ever had. She pulled the tee off on the sand and lay back on the cushion, and he stripped down to the bright pink patterned swim shorts he'd been wearing under his jeans — she laughed at the shorts, and he laughed back, and it was the first time in forever she'd laughed without an edge on it — and he knelt between her legs, leaned down, sucked her nipples until she arched into him, trailed kisses lower, and put his mouth on her like he had all the time in the world.
<video src="img/Rae/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Waves broke softly in the background. She came apart against his mouth, gasping his name into the salt air, her fingers in his hair, and afterward she lay there staring at the sky, chest heaving.
<<speech "Rae">> "That was — " <</speech>> she started. <<speech "Rae">> "I don't know what that was. But I've never — I've never let anyone in like that. I don't do this." <</speech>>
Jasper's hand found hers on the cushion, and he squeezed it once, warm and sure. <<speech "Jasper">> "You're safe with me, Rae. Whatever that is, you're safe with me." <</speech>>
She didn't answer. But she didn't pull her hand away, either. And she stayed at the cove until the sun was high, because she couldn't make herself leave — and because across campus the class she'd skipped was already over, and she'd have skipped it a hundred times for this.
<<elseif _s is 2>>
She told herself it was a one-time thing. A cove, a single morning, a moment of weakness. She told herself she didn't need anyone, hadn't ever needed anyone, wasn't about to start now.
And then she was at the cove again. And then she was waiting for him before she'd admitted she was waiting for him at all.
<img src="img/Rae/Corr1.jpg">
She came this time wearing the pink crop top and the polka-dot pajama pants she'd bought on a whim after the first time — telling herself they were just for sleeping — and now she was wearing them at the cove like they were hers, and she couldn't say when that had happened. He'd made room for her. That was the terrifying part. He'd made room for her like he'd been expecting her all along.
<<speech "Rae">> "This is getting to be a habit," <</speech>> she said, defensive before he'd even said anything. <<speech "Rae">> "I don't do habits. I don't do — this. Whatever this is. I should probably go." <</speech>>
<<speech "Jasper">> "You don't have to stay," <</speech>> he said, calm as always. <<speech "Jasper">> "You're not trapped here, Rae. You're not trapped with me. You can leave whenever you want." <</speech>>
That was the thing about him. He never held her. He never asked her to stay. He just kept being there, steady and patient, until staying started to feel like the only thing she wanted to do.
She knelt in the sand, the water bright behind her, and took him into her mouth — deep and hungry, her gold hoops swinging with the motion, saliva shining on her lips. He guided her with a hand on the back of her head, gentle, and when he pulled her up and kissed her, open-mouthed and messy, she kissed him back like she was drowning and he was air.
<video src="img/Rae/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
They didn't go far. A little beach house stood at the far end of the cove, shut up most of the year, and somehow he had the key. The room inside was carpeted and warm and smelled of him. She lay on the floor, shiny and slick, and he knelt over her and stroked himself until he came across her stomach and chest, thick and warm. And instead of flinching, instead of running, she laughed — an open, unguarded laugh — and rubbed the mess into her skin like lotion, looking up at him with her eyes soft in a way she'd never let them be soft.
<video src="img/Rae/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Rae">> "You're going to ruin me," <</speech>> she whispered, and it came out sounding like a confession. <<speech "Jasper">> "No," <</speech>> he said, pulling her against him. <<speech "Jasper">> "I'm going to keep you safe. Those are different things." <</speech>>
She lay in his arms and tried to remember the last time anyone had held her without wanting something back from her. She couldn't. And she knew, with a certainty that should have terrified her, that she was never going to be able to leave him — and she wasn't sure she wanted to anymore.
<<elseif _s is 3>>
She stopped pretending she had somewhere else to be. The cove was their place now, and she came to it like a second home — walking the sand in nothing but the tall black boots, because he'd told her once that she didn't need armor around him, and she'd believed him, and believing him had turned out to be the best thing she'd ever done.
<img src="img/Rae/Corr3.jpg">
<<speech "Rae">> "I told my mom about you," <</speech>> she said, kicking the boots off on the sand. <<speech "Rae">> "First time in three years I've told her about anyone. She asked if you were a bad influence." <</speech>> She laughed, and it was a real laugh, the kind she kept locked away for everyone else. <<speech "Rae">> "I told her you're the first person who ever made me want to be good for someone. Not good at school. Just... good. With you." <</speech>>
Jasper knelt between her legs on the white towel, the waves breaking behind them, and looked at her like she was the whole horizon. <<speech "Jasper">> "You don't have to be good for me, Rae. You just have to be here." <</speech>>
<<speech "Rae">> "I trust you," <</speech>> she said, and the words came out clear and certain. <<speech "Rae">> "I trust you. Completely ❤️. I've never trusted anyone like this in my life." <</speech>>
He kissed her, and then he was inside her, slow and deep, one hand on her ankle holding her leg up, the water and the sun and the sound of his breathing all around her. She watched him through open eyes, mouth parted, riding every stroke like she never wanted it to end.
<video src="img/Rae/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He turned her onto her stomach and drove into her from behind, his hands gripping her cheeks, spreading her, and when he pulled out thick white cum leaked from her in a long strand onto her thigh. She arched into him, reaching back, wanting more of him, all of him, forever.
<video src="img/Rae/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward they lay tangled on the towel, the sky going pink, and she traced the lines of his palm with her fingertip. <<speech "Rae">> "I used to think trust was a trap," <</speech>> she said quietly. <<speech "Jasper">> "And now?" <</speech>> She pressed her forehead to his. <<speech "Rae">> "Now I think it's the only thing that was ever real." <</speech>>
She still showed up to campus loud and sarcastic, still mouthed off in class, still flipped the world off with both hands — that was hers, and he'd never asked her to give it up. But at night she went to the cove, or he came to her, and she lay in his arms and let herself be seen, and she knew she belonged to him now, heart and trust and everything she'd never given anyone. And she was happier than she'd ever been.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Adriana had a rule about people: everyone wants something. It wasn't cynicism — it was training. She read bodies the way other people read books, and she'd learned to trust the read. That was the job. Keep the campus safe, keep everyone at a distance, and never let anyone past the uniform.
So when the quiet sociology student held the door for her one afternoon, she clocked him without a second thought. Tall, lean, dark skin, warm eyes, a friendly smile. He lived at Havenwood — the campus foster house near the east gate — she knew because she knew everyone on her route. The old man who ran the place, Thornfield, had a reputation for keeping the kids out of trouble, and Jasper was one of his success stories: polite, unassuming, always around. She'd never had a reason to think about him twice.
But he kept showing up. Not pushy — just there. The café she checked on her patrol. The bench outside the gym. He'd say hello, she'd nod, and he'd move on. He was the only person on her route who never wanted anything from her.
The night she finally took the coffee, she was running on fumes. A long shift, a storm, an incident at the union that had taken two hours to untangle. She'd swung by the café to get something hot in her hands before she drove home, and there he was, two cups on the counter like he'd been waiting.
<<speech "Jasper">> "You look like you need this more than I do." <</speech>> He slid one across. <<speech "Jasper">> "On me. No strings." <</speech>>
<<speech "Adriana">> "I don't take drinks from strangers." <</speech>> She said it out of habit, but she was already reaching for it.
<<speech "Jasper">> "I'm not a stranger. You've checked me out a hundred times." <</speech>> He grinned. <<speech "Jasper">> "Metaphorically, I mean. It's just coffee." <</speech>>
It was just coffee. Warm, good, strong — with something in it that settled her like a blanket, something that made the exhaustion drain out of her shoulders and the edges of the world go soft. She drank it while he talked — low, easy, about nothing — and somewhere in that quiet conversation her guard came down like it had been waiting for permission.
She didn't tell him her life story. She told him one true thing: that the night patrols were lonely, and she'd built her whole world to avoid admitting it. He didn't push. He just heard her, and the weight of being heard made her chest ache in a way she didn't understand.
<<speech "Jasper">> "You don't have to carry all of it yourself, you know." <</speech>> His voice was soft, certain. <<speech "Jasper">> "I'd protect you from the whole world if you'd let me. From everything that ever made you build those walls." <</speech>>
It was the safest she'd felt in years. She couldn't have said why. She only knew that with him, the uniform came off, and the woman underneath didn't have to watch her own back for once.
That night she sent him a video. She drove home with his voice still warm in her chest, changed out of her uniform, and stood in her bright apartment in the black dress she only wore off-duty — not the guard, just a woman with her hair down and her walls down.
<img src="img/Adriana/Normal.jpg">
She didn't plan it. She'd bought the black mesh one-piece a while ago and never had the nerve to wear it — deep plunge, high-cut legs — and she put it on, stood in front of her big windows with the city lights behind her, and filmed herself for him.
<video src="img/Adriana/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Adriana">> "This is for you. Because you said you'd protect me." <</speech>> She laughed into the phone, awkward and real, a woman who'd never sent a video like this in her life. <<speech "Adriana">> "Don't get used to it." <</speech>>
He replied within minutes — warm, reverent, telling her she was beautiful, telling her he'd never seen anything like her. His voice in her ear, his words settling into her bones — it was the same feeling as the coffee: safe, warm, unguarded. She should have put the phone down. Instead she changed into the black strappy sheer set — the one with the floral lace, the matching choker — and lay back on the red couch, and pressed record again.
<video src="img/Adriana/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He wasn't there. That was the thing. He was on the other end of the phone — voice, texts, a low laugh when she fumbled the camera — but he wasn't in the room, and she did it anyway. Legs spread, fingers slow and deliberate over the sheer crotch, her eyes locked on the lens like it was him. She'd never let anyone see her like this. But alone, in the dark, for him — she gave him everything, and when she came she said his name, soft and ruined.
His reply came in a voice message, low and steady. <<speech "Jasper">> "I'm not going anywhere, Adriana. You're safe with me. You're mine now." <</speech>>
She lay there in the dark, phone pressed to her chest — and the safest she'd ever felt was the most dangerous thing that had ever happened to her.
<<elseif _s is 2>>
She was at Havenwood whenever she could be. She told herself it was just the common room — the big one with the white couch and the windows looking out onto the garden — and that she liked the quiet there. But it was him. She'd stopped clocking him like a stranger on her route; now she clocked his footsteps in the hall and her whole body relaxed. She wasn't ready to name what it was. He never pushed. He just kept that steady presence, and she kept gravitating toward him like a plant toward light.
<img src="img/Adriana/Corr1.jpg">
She came by that evening in the olive crop top and leggings, off-duty and easy, and he was already waiting on the white couch, the garden green beyond the glass.
<<speech "Adriana">> "I feel safe with you," <</speech>> she whispered, settling beside him. <<speech "Adriana">> "I don't understand it. I don't trust anyone. I've never trusted anyone. But I trust you." <</speech>> She caught herself, breath hitching. <<speech "Adriana">> "I can't stay away. I don't want to stay away." <</speech>>
<<speech "Jasper">> "Then don't. Let me take care of you." <</speech>>
He helped her out of the top and the leggings, and she lay on her stomach across his lap on the white couch, reaching back for him, wanting to give him everything. She took him into her mouth deep and wet, stroking the shaft with one hand while she worked the head, eyes locked up at him, saliva glistening.
<video src="img/Adriana/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "That's my good girl. You're so good for me, Adriana." <</speech>>
She moaned around him, taking him deeper, lost in the act of pleasing him. When he finally pulled her up, she was trembling, lips swollen, eyes shining.
He laid her back on the white couch, topless, and knelt over her.
<video src="img/Adriana/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Thick ropes landed across her nose, her cheeks, her lips, into her open mouth, and she kept her tongue out, eyes fluttering, receiving it all. She stayed still and open for him, letting him paint her, and when he was done she licked her lips and smiled up at him — genuinely, beautifully.
<<speech "Adriana">> "I need you. I don't know what I'd do without you." <</speech>>
<<speech "Jasper">> "You'll never have to find out. I'm not going anywhere, Adriana." <</speech>>
She curled into him afterward, skin warm, breath steady, feeling safer than she'd ever felt in her life — and still not knowing, yet, that she'd have given him anything he asked.
<<elseif _s is 3>>
She belonged to him, and she knew it, and it was the best thing that had ever happened to her. The guard who'd trusted no one trusted him absolutely. His voice was safety. His touch was home. She'd have walked into fire if he'd asked her to, and she'd have smiled doing it.
He had her in his room at the house that night — dim, the white sheets cool, the walls quiet — still in the black stockings and the thin choker, the way he liked her.
<img src="img/Adriana/Corr2.jpg">
She was on all fours, face turned toward him, open-mouthed and shining, as he knelt behind her and drove into her deep.
<video src="img/Adriana/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "You're so good for me, Adriana. You trust me completely, don't you?" <</speech>>
<<speech "Adriana">> "Yes — completely — I'd do anything for you —" <</speech>> She pushed back against every stroke, lost in him, her whole world narrowed to his grip on her hips and his voice in her ear.
He pulled her onto her back, lifted one leg, held it up by her own hand, and settled between her thighs — missionary, deep and steady, her head tilted back, her mouth open.
<video src="img/Adriana/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Adriana">> "I'm yours. All of me. Forever. I'd give up everything — my job, my post, everything — just to stay with you." <</speech>>
<<speech "Jasper">> "You don't have to give up anything." <</speech>> He leaned down, kissed her, slow and tender. <<speech "Jasper">> "You'll keep your patrols. You'll keep protecting everyone. And every night you'll come home to me, and I'll keep you safe." <</speech>>
He moved inside her until he came, deep and warm, and she gasped his name, complete, utterly his. He gathered her into his arms, skin to skin, and she lay there, the guard's uniform folded on his chair, her world reduced to the warmth of him.
<<speech "Adriana">> "I trust you. Completely." <</speech>> She pressed her face into his chest. <<speech "Adriana">> "I'd do anything for you. Anything." <</speech>>
<<speech "Jasper">> "I know, Adriana. That's why I'll always keep you safe." <</speech>>
And the campus never knew that the guard who watched over every building, who trusted no one, had given her whole heart to a quiet sociology student from Havenwood — and that it was the safest she'd ever been.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Adriana knew every late-night face on campus, and Nathan was the most reliable of them. The literature student who was always the last one out of the library, apologizing to her as she locked the doors behind him. She'd been clearing that building for three years, and he'd been there for most of them — polite, a little shy, gone the moment she asked. He was the only student who ever said "thank you" like he meant it. She told herself that was why she'd started keeping an eye out for him.
She was off-duty that evening, in the black dress she saved for nights when she actually left the house, when the knock came. She opened her apartment door and found him on the step, holding her paperback.
<img src="img/Adriana/Corr1.jpg">
<<speech "Adriana">> "Where did you find that?" <</speech>> She'd lost it a while ago, left it on a bench outside the union.
<<speech "Nathan">> "You left it on the bench. I saw you drop it during the evacuation drill." <</speech>> He held it out, sheepish. <<speech "Nathan">> "I've been carrying it around hoping I'd run into you. That sounded less creepy in my head." <</speech>>
She laughed — a real laugh, surprised out of her. She'd have sworn later it was the joke. But when she took the book, their fingers brushed, and he looked at her — really looked, not at the uniform, not at the badge — and something in her chest went soft and warm and utterly unguarded. She didn't have a name for it. She didn't stop to question it. She just stood in her doorway with her heart suddenly, stupidly wide open, and asked if he wanted to come in for tea.
He did. They talked for an hour. Not about patrols — about him, about her, about the quiet. She told him one thing she'd never told anyone: that the night shift was the loneliest hour of her life, and she'd built her whole world to avoid admitting it. He didn't pity her. He just heard her. And when he finally left, pressing her book back into her hands like it was something precious, she stood in her empty apartment and realized she didn't want him gone.
That night she sent him a video. She didn't plan it. She put on the pink strappy set she'd bought on impulse and never worn — cut-out bra, matching lower piece — and filmed herself at the bedroom door, the way you'd greet someone you'd been waiting for all day.
<video src="img/Adriana/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Adriana">> "So. You said you'd want to see me again." <</speech>> She laughed into the phone, bright and nervous, a woman who'd spent years in control suddenly out of her depth. <<speech "Adriana">> "This seemed easier than showing up at your dorm." <</speech>>
He replied within seconds — warm, eager, telling her she was beautiful, telling her he hadn't been able to stop thinking about her either. His voice in her ear, his words in her head — it was like a hand closing around her heart. She should have put the phone down. Instead she changed into the black lace strappy set — the choker top with the little flowers, the platform heels — and lay back on the red velvet couch, and pressed record again.
<video src="img/Adriana/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He wasn't there. That was the thing. He was on the other end of the phone — voice, texts, a laugh when she fumbled the camera — but he wasn't in the room, and she did it anyway. Legs spread, the glass dildo working in and out of her, her eyes locked on the lens like it was him. She'd never performed for anyone. She'd never let anyone see her like this. But alone, in the dark, for him — she gave him everything, and when she came she said his name, and she meant it like a promise.
His reply came in a voice message, low and reverent. <<speech "Nathan">> "I've never seen anything so beautiful. I don't want to miss a single part of you, Adriana. You're safe with me. You're mine now." <</speech>>
She lay there in the dark, phone pressed to her chest, heart pounding — and she knew she'd already given him something she'd never get back.
<<elseif _s is 2>>
It started with a borrowed shirt. His white button-up had ended up on her after a rainstorm, and it had ended up living on her couch, and then on her, and she'd stopped pretending it was about the shirt. She was at his apartment more than her own, wearing his scent, smiling at her phone like a fool. She told herself it was casual. She told herself she was still the woman who ran every shift by the book. And then she'd catch herself mid-patrol, thinking about his voice, and she'd stop pretending.
<img src="img/Adriana/Corr1.jpg">
She came to him that evening in the olive crop top and leggings, hair loose, easy in his space. He was at the white couch with the side-table lamp, and the look he gave her when she walked in made her knees weak.
<<speech "Adriana">> "I can't stop thinking about you." <</speech>> The words tumbled out before she could stop them. <<speech "Adriana">> "I've never been like this. I don't understand it." <</speech>>
<<speech "Nathan">> "You don't have to understand it." <</speech>> He stood, crossed to her, took her face in his hands. <<speech "Nathan">> "You're mine now, Adriana. That's all you need to know. You don't have to think about anything else." <</speech>>
He unbuttoned his shirt off her, helped her out of the leggings, and she knelt before him — bare in his white shirt and dark pants, looking up with the wide, trusting eyes of a woman who'd handed over her keys.
<video src="img/Adriana/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She took him into her mouth, deep and focused, and his hand settled on the back of her head, gentle, guiding. She looked up at him as she worked, eyes watering, wanting nothing but the sound of his breathing and the weight of his approval. When he pulled out, a thin string of spit and want stretched between them, and she looked up at him, glassy and dazed and completely his.
<<speech "Nathan">> "That's my good girl. So perfect for me." <</speech>>
He drew her up, laid her back against the grey couch with the white pillows, and knelt over her.
<video src="img/Adriana/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He held himself over her face, and she opened wide, tongue out, watching him with adoring eyes as he fed her — cum already coating her cheek and the corner of her mouth, more landing on her tongue as she licked and sucked the tip, never breaking that upward gaze. When he was done, she gathered the mess from her lips and swallowed, looking up at him like he'd given her a gift.
<<speech "Adriana">> "I need you. I don't know what I'd do without you." <</speech>>
<<speech "Nathan">> "You'll never have to find out." <</speech>> He pulled her up, held her, kissed the mess from her lips. <<speech "Nathan">> "I'm not going anywhere, Adriana. You're mine now." <</speech>>
She wasn't in love. She was something worse — she was hooked, and the hook was sunk deep, and she didn't want it out.
<<elseif _s is 3>>
She'd stopped going home. Her uniform hung in his closet now, pressed and neat, beside her toothbrush in his bathroom. She still worked her shifts — he told her to, and she did, because pleasing him meant doing what he said — but the rest of her belonged to him. The guard who'd watched over the whole campus had shrunk her world down to one person, and she'd never felt safer.
She was waiting on his white bed that night in the black lace set — the bra, the garter, the stockings, the thin choker — her hair loose, her body on display, her eyes soft and waiting.
<img src="img/Adriana/Corr2.jpg">
<<speech "Nathan">> "There's my girl." <</speech>> He stood in the doorway, and the look in his eyes made her heart stutter.
<<speech "Adriana">> "I love you," <</speech>> she said, and it was the truest thing she'd ever said. <<speech "Adriana">> "I love you so much. I'm yours. All of me. Forever." <</speech>>
<<speech "Nathan">> "I love you too, Adriana. You're safe. You're mine." <</speech>>
He came to her on the bed, and she'd changed into the black mesh halter — breasts bare beneath it — and he lifted her leg, settled between her thighs, and drove into her slow and deep, and she looked up at him with open-mouthed, adoring intensity.
<video src="img/Adriana/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "That's it. Take all of me. You were made for this — made for me." <</speech>>
She took it, gasping, trembling, coming apart with his name on her lips.
<video src="img/Adriana/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Then she was astride him — nude, oiled, riding him on the red leather couch with the pink tufted sofa behind them — one hand pressed low on her belly as she rose and sank, wetness and cum dripping from her as she lifted, showing him the creampie leaking onto his cock and stomach.
<<speech "Adriana">> "I'm yours. Completely. I'd give up everything — my job, my home — everything — just to stay in your arms." <</speech>>
<<speech "Nathan">> "You won't have to give up anything." <</speech>> He gripped her hips, pulling her down, filling her again. <<speech "Nathan">> "You'll keep your post. You'll walk your patrols. And you'll come home to me every night, and every night I'll remind you who you belong to." <</speech>>
She curled into him afterward, the guard's uniform hanging in his closet, her world reduced to the warmth of his chest and the promise in his voice.
<<speech "Adriana">> "I'm safe," <</speech>> she whispered, testing the words. <<speech "Adriana">> "I'm yours." <</speech>>
<<speech "Nathan">> "Always." <</speech>>
And the campus never knew that its night guard, the one who watched over every sleeping building, had found someone to watch over her — and given him everything.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Marie had a problem. The spring mixer was six weeks out and she was short on volunteers — the sign-up sheet had exactly three names, and two of them were her. So when someone at the student union mentioned that the Havenwood house always helped with campus events, she grabbed her flyers and went over that afternoon, because Marie didn't wait for problems to solve themselves.
<img src="img/Marie/Normal.jpg">
The house sat at the edge of campus behind a line of maples — an old place with a big porch and, on that day, a dozen people on the lawn. A guy with a basketball, a girl with a book, someone fixing a bike. It didn't look like a student house. It looked like a family that happened to live at college.
Jasper met her at the gate before she could knock. Tall, easy, with a smile that made her smile back on instinct. <<speech "Jasper">> "You must be Marie. The mixer." <</speech>> He held out a hand. <<speech "Jasper">> "We heard you were looking for help. Come in — there's lemonade." <</speech>>
<<speech "Marie">> "How did you — " <</speech>> She laughed. <<speech "Marie">> "I literally just decided to come over." <</speech>>
<<speech "Jasper">> "Word travels fast at Havenwood," <</speech>> he said, easy. <<speech "Jasper">> "We like knowing who's out there doing good for the campus. That's kind of our thing." <</speech>>
They talked on the porch for an hour. That was the thing about Marie — she could talk to anyone, and Jasper could listen, and they ended up deep in a conversation about the mixer, about the vending-machine union the freshmen had tried to start, about how hard it was to get people to show up for each other. She told him about the time she'd organized a welcome picnic and the whole quad had come, and how that feeling — everyone together, nobody left out — was the best thing she knew.
<<speech "Jasper">> "That's a rare thing," <</speech>> he said, and he meant it. <<speech "Jasper">> "Most people just want something from a crowd. You want the crowd to be happy." <</speech>>
<<speech "Marie">> "That's just — that's how I am." <</speech>> She laughed, a little embarrassed, bright. <<speech "Marie">> "I can't help it. I see someone alone and I want to fix it." <</speech>>
<<speech "Jasper">> "Then you should see the rest of the house," <</speech>> he said. <<speech "Jasper">> "We're building something here. A family — people who look out for each other, who'd do anything to make sure nobody ends up alone. We're always looking for people who think like you do." <</speech>>
The air around him was warm and easy — honeyed, like the smell of rain on dry ground — and Marie, who was never still, sat down in it and stayed. She didn't know why it felt like coming home. She just knew she liked it.
She helped with the mixer sign-up that whole week, and Jasper came to the event hall with flyers and an easy laugh, and they'd take breaks on the hillside overlook above campus — her white ribbed crop top, low-rise denim shorts with the red waistband, red paisley bandana tied as a headband, a little teal teardrop gem under her left eye — and she'd talk and he'd listen, and somewhere along the way she stopped planning and started just being.
That afternoon on the hill, she lifted the hem of her crop top, showing him the curve of her stomach, the double navel piercing, laughing at something he'd said — and then they went back to the house, to the bright living room with the long white sofa and the blue bicycle against the wall, and she reclined on the sofa and pulled the crop top higher, slow, until her breasts were bare, looking at him with that direct, parted-lip expression, the bandana still tied.
<video src="img/Marie/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
That night, alone in her apartment, she lay on her back on the white surface, legs spread, nude, and worked herself with the pink dildo — slow, deep strokes, the script tattoo on her forearm, head tilted back, mouth open — and she thought about Havenwood, and the family he was building, and the way he'd said *we're always looking for people who think like you do*, and she came with his name in her head, which had never happened before, and she didn't understand it — but she smiled, and she texted him the next morning, which was a first for her.
<video src="img/Marie/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
*Lemonade again? Same porch?*
She'd never texted anyone first in her life.
<<elseif _s is 2>>
The mixer was two weeks out and Marie had never been happier in her life. That was the strange, wonderful truth of it — she'd always been the one who connected everyone, and for the first time she was part of something instead of running it. She'd started going to Havenwood for dinner twice a week. Carolina had shown her the garden. Casey had made her laugh with a brutal roast. Jasper had walked her home through the maples, and she'd felt, for the first time in her life, like she had people.
He came to her at the event hall that afternoon — he did that now, showed up with tea he'd made, just to say hi — and she looked up from the seating chart and the whole room went a little quieter in her head.
<img src="img/Marie/Corr1.jpg">
<<speech "Marie">> "I keep doing that thing," <</speech>> she said, and she was laughing, because she couldn't not laugh. <<speech "Marie">> "Where I catch myself planning my day around when I'll see you. That's new. I've never — I'm the girl who makes the plans, Jasper. I don't get planned around. I don't know what to do with it." <</speech>>
<<speech "Jasper">> "You don't have to do anything with it," <</speech>> he said, setting the tea beside her clipboard. <<speech "Jasper">> "You can just be here. You're not trapped, Marie. The house isn't a cage — it's a door. You can walk through it whenever you want." <</speech>>
That was the thing about him. He never held her. He never asked her to stay. He just kept being there, warm and steady, until staying felt like the only thing she wanted.
She knelt on the white sofa between his legs — white crop top pushed up under her breasts, the red bandana still tied, a small stack of cash on the cushion beside them (he'd been paying her for flyers, and she'd laughed and let him) — and she held the base of his cock and took the head into her mouth, working him slow and steady, eyes rolled up toward his face, the teal teardrop gem catching the light each time she looked up. She'd never done this for anyone. She'd never wanted to. And it felt, impossibly, like the most natural thing in the world.
<video src="img/Marie/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up onto the white tufted couch, laid her back, hair spread, crop top up, and stood over her — and she looked up, mouth wide, tongue out, the piercing visible, and he came across her tongue and lips, thick and white, and she kept her mouth open, smiling through it, strands of it stretching between them.
<video src="img/Marie/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Marie">> "You know what I love about the house?" <</speech>> she whispered, still on her back, looking up at him. <<speech "Marie">> "Everyone's there because they chose it. Nobody's stuck. And you're building a family out of people who chose each other. I've never seen anything like it." <</speech>> She reached up, pulled him down to her. <<speech "Marie">> "I want to be part of that, Jasper. I don't know how yet. But I want it." <</speech>>
He kissed her, and she lay in his arms, the warmth settling around her like a home she hadn't known she was missing — and she knew, with a bright, certain happiness, that she was going to be part of it, whatever it took.
<<elseif _s is 3>>
The mixer was two days out, and Marie had done something she'd never done in her life: she'd asked for help. Not for the event — for herself. She'd moved her things into the room at Havenwood at the end of the hall, the one with the window over the maples. She'd told Blake, and Blake had laughed and said it was about time she had people. And for the first time in her life, the girl who connected everyone was part of something instead of running it.
She came back to the house that evening, after the last planning meeting, and found Jasper on the white sofa, the blue bicycle against the wall, the whole place smelling like dinner and home.
<img src="img/Marie/Corr1.jpg">
<<speech "Marie">> "I moved my stuff in," <</speech>> she said, and she was grinning, bright as the sun. <<speech "Marie">> "Carolina's helping me pick a shelf for the window. Casey said my plant collection is 'aggressively cheerful.' I think that's love." <</speech>>
Jasper set down the cup he was holding, and the look on his face — she'd never seen anything like it. Like he'd been hoping for something and hadn't dared to believe it. <<speech "Jasper">> "You're really staying," <</speech>> he said.
<<speech "Marie">> "I'm really staying." <</speech>> She crossed to him and took his hands. <<speech "Marie">> "You told me the house was a door, not a cage. So I'm walking through it. I want to build this family with you, Jasper. I want to make sure nobody at this school ends up alone — that's what I've always wanted, and you're the first person who ever showed me I didn't have to do it by myself." <</speech>> She took a breath, bright and certain. <<speech "Marie">> "I trust you, Jasper. I trust you. Completely ❤️. And I'm home." <</speech>>
He kissed her, and she went with him, and they lay on the white couch — the red bandana tied around her head, her crop top pulled up above her breasts — and he lifted her leg high and pushed into her, slow and deep, and she watched him through open, glistening eyes, her free hand gripping the couch, her mouth open, riding every stroke like she never wanted it to end.
<img src="img/Marie/Corr3.jpg">
<video src="img/Marie/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her to the floor — the light wooden floor with the colorful geometric rug nearby — and she lay on her back, hair loose, looking up, mouth open, tongue out, and he knelt over her and came across her face and tongue, thick and white, and she licked and took the tip into her mouth, eyes fixed upward, smiling, pink nails near the shaft, taking every drop.
<video src="img/Marie/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, tracing patterns on his chest, the window over the maples going dark. <<speech "Marie">> "I don't want to plan things anymore," <</speech>> she murmured, surprising herself with how true it sounded. <<speech "Marie">> "I want to be here. This is my home now — not the event hall, not the seating charts. Here." <</speech>> He kissed the top of her head. <<speech "Jasper">> "It always was," <</speech>> he said. <<speech "Jasper">> "You just hadn't moved in yet." <</speech>>
She smiled at that, bright and happy — because it was true. The girl who'd spent her whole life bringing everyone together had finally been brought in herself, and everything she was belonged to Havenwood now: her warmth was the house's warmth, her welcome was the house's open door, and every lonely soul she found out there would be led home to the family, exactly the way she had been.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Anya/Normal.jpg">
Anya had known Nathan since before she became a graduate teaching assistant. When he arrived at the university as a younger student, she had been the experienced senior who showed him which registration queue actually moved, where the quiet study rooms were, and how to ask a professor for clarification without sounding as though he were challenging the syllabus. She had introduced him to people, warned him away from bad electives, and made the campus feel navigable.
Their friendship survived her graduation into the philosophy PhD program. Nathan still asked her practical questions; Anya still answered with the affectionate impatience of someone who remembered him carrying the wrong campus map.
That history was why Nathan asked for her help preparing a Valentine's date for Aria.
The borrowed function room was bright with pink and red heart balloons, a red-covered table, cards, roses, and a banner that read *Happy Valentine's Day*. Anya had dressed for the theme in a sleeveless cream dress patterned with tiny red hearts, bright pink lace panties, and heels. She stood on a chair adjusting one corner of the banner while Nathan tried to make two strings of lights agree on a color.
<<speech "Anya">> "The left side is romantic. The right side looks like a pharmacy window." <</speech>>
<<speech "Nathan">> "They're the same lights." <</speech>>
<<speech "Anya">> "Then the right side has a confidence problem." <</speech>>
Nathan stepped back and looked at the room.
<<speech "Nathan">> "Is it too much?" <</speech>>
<<speech "Anya">> "Aria loves you. She'll forgive the balloon density." <</speech>> Anya climbed down and moved a rose away from an open flame. <<speech "Anya">> "Caldwell's niece Vanna just joined the introductory section. She would call this emotionally coercive and then eat the chocolates." <</speech>>
<<speech "Nathan">> "Sounds entertaining and exactly like her." <</speech>>
<<speech "Anya">> "For someone who isn't grading her, maybe." <</speech>>
The easy laughter left Anya warmer than it should have. Nathan had asked for her help because he trusted the senior student who had once shown him around, and because she understood both his good intentions and his inability to judge balloon density. Affection already existed; Anya had simply kept it in the safe category marked *friend*.
The love spirit stirred around Nathan.
A living warmth rolled through the decorated room, softer than the red lights and far more intimate. It reached Anya beside the table and gathered under her ribs. Every modest feeling she had for Nathan expanded at once: amusement became delight, respect became tenderness, and the knowledge that the room was meant for Aria sharpened into an ache Anya was ashamed to recognize as jealousy.
She gripped the tablecloth.
<<speech "Nathan">> "You okay?" <</speech>>
<<speech "Anya">> "The room became warm." <</speech>>
Nathan looked toward the thermostat. Anya kept looking at him.
A balloon ribbon had caught beneath the hem of her dress. She lifted the skirt to free it and exposed the bright pink lace. Nathan turned away immediately.
<<speech "Nathan">> "Sorry." <</speech>>
His reflexive decency made the spirit flare.
<<speech "Anya">> "Don't be." <</speech>>
She should have lowered the dress. Instead she smiled, turned slightly, and held the skirt up with both hands. The playful gesture became something else when she sat on the edge of the red-covered table and opened her legs. Anya pulled the pink panties aside, bared herself, and lightly stroked her pussy while watching Nathan's face change.
<video src="img/Anya/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "Anya, this room is for Aria." <</speech>>
The reminder hurt because Anya knew exactly what she was doing.
<<speech "Anya">> "I know." <</speech>> Her fingers stopped, but she did not cover herself. <<speech "Anya">> "Tell me to leave." <</speech>>
Nathan opened his mouth. The spirit's warmth moved through him too, feeding his gratitude, attraction, and the dangerous intimacy of being wanted by someone who knew the date was for another woman.
He crossed the space between them instead.
Anya remained perched on the table with the heart dress on and the panties pulled aside. Nathan knelt between her spread legs, held one thigh, and pressed his mouth to her. Her hand settled against the back of his head. She looked down with parted lips, then closed her eyes as his tongue drew stronger reactions from her and her hips began rocking gently toward him.
<video src="img/Anya/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her orgasm left her gripping the edge of the table beneath the Valentine's banner.
Nathan stood. Neither of them spoke for several breaths.
Aria's unopened card lay beside Anya's thigh.
Anya lowered her dress, moved the card to the center of the roses, and smoothed the tablecloth where her hands had wrinkled it.
<<speech "Anya">> "I came here to help you make her happy." <</speech>>
<<speech "Nathan">> "I know." <</speech>>
<<speech "Anya">> "That cannot happen again." <</speech>>
The warmth stayed around them, turning the promise into something neither quite believed.
<<elseif _s is 2>>
<img src="img/Anya/Corr1.jpg">
Anya returned to the decorated function room carrying the department's inventory sheet and a roll of empty storage labels. Taking down the Valentine's display had become the excuse: the room needed clearing, Nathan had the storage key, and Anya had repeatedly assured herself that there was nothing dangerous about balloons in daylight.
The red table, roses, and banner remained exactly where they had been.
<<speech "Anya">> "The inventory says twelve heart balloons." <</speech>>
Nathan counted the survivors.
<<speech "Nathan">> "Nine." <</speech>>
<<speech "Anya">> "Three casualties of romance." <</speech>>
The joke faded between them. Aria's card was gone. Anya did not ask whether the date had happened.
<<speech "Anya">> "What we did was wrong." <</speech>>
<<speech "Nathan">> "Yes." <</speech>>
His agreement gave her nothing to push against.
<<speech "Anya">> "You are supposed to make an excuse." <</speech>>
<<speech "Nathan">> "Would you believe one?" <</speech>>
<<speech "Anya">> "No." <</speech>> She looked down at the inventory sheet. <<speech "Anya">> "I should ask somebody else to finish this room." <</speech>>
<<speech "Nathan">> "The decorations haven't done anything." <</speech>>
<<speech "Anya">> "Every small campus task has become a reason to speak to you." <</speech>>
The love spirit rose before Nathan could answer. Warmth spread under the heart balloons, gathered at Anya's back, and flowed through her. Guilt remained, but love magnified faster than guilt could restrain it. She wanted Nathan's attention with an intensity that made every correct decision feel like losing him.
Anya wore the sheer beige heart-patterned skirt from the room's costume box, pink panties beneath it, and nude platform heels. She had changed while sorting decorations without admitting whom she wanted to see her.
<<speech "Anya">> "I don't know why I keep arranging the evidence against myself." <</speech>>
Nathan touched her face. Anya closed her eyes and leaned into his hand.
Then she knelt on the patterned rug, the heart fabric bunched around her thighs and her upper body bare. One hand held the base of his cock while her mouth worked steadily along the shaft. She looked up through her loose blonde hair, pulled back to swipe her tongue over the tip, and took him deep again.
<video src="img/Anya/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When Nathan drew close, Anya shifted to the tiled floor and tilted her face upward. She opened her mouth and extended her tongue. Thick white cum landed across it and her lower lip, spilling over her chin. She kept her gaze fixed on him, closed her lips around the head to suck him clean, swallowed, then opened again while saliva and cum shone at the corners of her mouth.
<video src="img/Anya/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Anya sat back on her heels. The spirit's warmth hummed behind her sternum.
<<speech "Anya">> "I still know this is wrong." <</speech>>
<<speech "Nathan">> "So do I." <</speech>>
<<speech "Anya">> "Then why does knowing feel so small when you're here?" <</speech>>
Nathan had no honest answer that separated his feelings from the spirit. He handed her the inventory sheet and helped her stand.
Anya took the papers but did not move away.
<<speech "Anya">> "Keep tutoring her." <</speech>>
<<speech "Nathan">> "Are you sure?" <</speech>>
<<speech "Anya">> "No." <</speech>> She held his gaze. <<speech "Anya">> "But she's making progress, and I am not going to punish her because I can't manage myself around you." <</speech>>
It was a sensible decision. The relief she felt at preserving their connection was not.
<<elseif _s is 3>>
<img src="img/Anya/Corr3.jpg">
Anya restored the Valentine's room for Nathan's rescheduled date with Aria. She replaced the wilted roses, repaired the banner, and laid fresh cards across the red cloth. Doing the right thing had become a ritual she hoped would make her want the right person to benefit from it.
Nathan arrived as she finished.
Anya wore the cream heart-patterned dress again. She kept both hands flat on the table so they would not reach for him.
<<speech "Anya">> "The room is ready. The booking confirmation is in your inbox. After I hand you the key, we should stop meeting alone." <</speech>>
<<speech "Nathan">> "If that's what you want." <</speech>>
<<speech "Anya">> "It is what I should want." <</speech>>
The love spirit surged.
Warmth filled the room so completely that the balloons shifted in its passing. Anya felt affection become certainty, jealousy become longing, and every hour spent preparing another woman's happiness collapse beneath the desire to be the person Nathan looked for when he entered.
She reached into her pocket for the key. Nathan closed his hand around hers before she could release it.
<<speech "Nathan">> "Anya, I care about you." <</speech>>
<<speech "Anya">> "Don't say that here." <</speech>> Her voice shook. <<speech "Anya">> "Not in the room I made for her." <</speech>>
<<speech "Nathan">> "It would be true in any room." <</speech>>
That was the end of her plan.
Anya stripped off the top of the dress and leaned over the edge of the red-covered table, heart-patterned fabric bunched around her waist. Nathan took her from behind while her full breasts hung and swayed with each thrust. One hand braced on the table; the other reached back to spread her ass. She looked over her shoulder through long blonde hair, mouth open, hips pushing back to meet him beneath the Valentine's banner.
<video src="img/Anya/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Nathan slowed. Anya remained bent over the table, every decoration around her naming the betrayal she had tried to repair.
<<speech "Anya">> "I love you." <</speech>> She closed her eyes, then forced herself to look back at him. <<speech "Anya">> "I loved showing you the campus when you were new. I loved that you kept coming back with questions after you no longer needed the map. I built this room for Aria and kept pretending that made everything I felt belong to somebody else." <</speech>>
<<speech "Nathan">> "I love you too." <</speech>>
The spirit settled through her completely. The conflict did not disappear; it lost the authority to outweigh love.
Nathan turned her onto her back on the same table. Anya lay fully nude with one foot elevated, natural pubic hair visible, legs spread wide. He thrust into her until clear fluid shone across her folds. When he pulled out, thick white cum leaked from her open pussy onto the red cloth. Anya reached down, spread herself, pushed two fingers inside to scoop and swirl the cream, then withdrew them so more spilled in sticky strands.
<video src="img/Anya/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Anya remained the experienced friend who knew how the university worked. She reserved rooms, interpreted faculty emails, introduced Nathan to administrators, and smoothed over scheduling conflicts throughout the philosophy department. Aria still received thoughtful dates. Faculty still saw a diligent PhD student helping the younger literature major she had once shown around campus.
What changed was the purpose beneath that help. Every arrangement now carried Anya's private hope: another hour near Nathan, another person learning to care for him, another bond the spirit could someday make as overwhelming as hers.
The senior student who had once shown him where he belonged on campus had quietly reorganized her own life around belonging beside him.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Anya/Normal.jpg">
Anya occupied the useful middle of university life. Students asked her how to survive a professor's expectations; faculty expected her to turn their decisions into workable instructions for students. She understood both languages and was kind enough to translate without making anyone feel stupid.
Jasper began learning from her during an interdisciplinary research workshop. He was the sociology junior from Havenwood with a community-interview proposal and no idea which ethics forms mattered. Anya showed him how the review board read applications, which office handled resident consent, and how to rewrite institutional language into something people could actually understand.
She invited him to her apartment to review the latest participant-consent draft. Anya wore an orange knit crop top, light denim shorts, hoop earrings, and the focused expression of someone who had revised the same sentence too many times.
<<speech "Anya">> "The department wants every interview recorded and archived." <</speech>> She turned the laptop toward Jasper. <<speech "Anya">> "I think the form discloses that clearly." <</speech>>
Jasper read the paragraph twice.
<<speech "Jasper">> "It discloses it. It doesn't explain that people can't withdraw the recording after the archive closes." <</speech>>
Anya leaned closer.
<<speech "Anya">> "That's in the appendix." <</speech>>
<<speech "Jasper">> "Nobody reads an appendix while deciding whether to talk about foster care on camera." <</speech>>
She considered the point without becoming defensive, deleted three lines, and rewrote the paragraph in plain language.
<<speech "Anya">> "Better?" <</speech>>
<<speech "Jasper">> "Much." <</speech>>
Jasper first kept returning because Anya knew things he needed to learn. Then he grew fond of the way she taught them. She answered questions without condescension, checked how forms would affect residents rather than treating them as data, and used her access to make students and authorities understand each other.
She would fit at Havenwood's table. More than that, she could become part of the family Jasper was building there: someone who knew how to protect the house in committee rooms and still speak gently to the person filling out the form.
Wanting her included was not enough for him. Inclusion could be declined; affection could fade; careers could pull people elsewhere. Jasper wanted Anya to trust the family so deeply that leaving its circle would stop feeling like an option.
He opened the thermos he had brought and poured tea into two cups. A measured amount of Thornfield's essence had already dissolved into the blend.
Steam carried chamomile, leather, and rain striking warm pavement.
Anya took a sip and looked up.
<<speech "Anya">> "That smells familiar." <</speech>>
<<speech "Jasper">> "Havenwood tea." <</speech>>
It was true enough to sound harmless.
They continued through the consent form. The scent worked gradually. Anya's shoulders loosened; she stopped checking every change against the department's tracked template. When Jasper questioned the plan to store identifying details beside the recordings, she deleted the field without saying she would ask permission first.
<<speech "Anya">> "He'll restore it." <</speech>>
<<speech "Jasper">> "Then make him explain why he needs it." <</speech>>
<<speech "Anya">> "You say that as if disagreeing with your advisor is easy." <</speech>>
<<speech "Jasper">> "I say it as if the form has your name on it too." <</speech>>
The essence turned that concrete respect into safety. Anya looked at Jasper and felt, with mounting certainty, that he was the person in the room least likely to use her trust carelessly.
A shopping box sat near the sofa. She had bought black sheer polka-dot lingerie with thin gold chains for a graduate fundraiser, then decided the chains looked ridiculous.
Under ordinary circumstances, she would have asked Marie or another friend. Under the rain-warm scent, asking Jasper felt natural.
<<speech "Anya">> "Can you give me an honest opinion about something that has nothing to do with research ethics?" <</speech>>
<<speech "Jasper">> "Probably." <</speech>>
She returned in the black bra and matching panties. The delicate chains crossed her chest as she adjusted the cups, brushed blonde hair from one shoulder, and turned beneath the apartment's bright light.
<<speech "Anya">> "Too much?" <</speech>>
<<speech "Jasper">> "Not enough to be ridiculous." <</speech>>
The compliment settled warmly. Anya kept posing long after he had answered, one hand drifting from the gold chains to her stomach while her calm expression softened into open-mouthed interest.
<video src="img/Anya/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Anya">> "I don't usually model underwear for research participants." <</speech>>
<<speech "Jasper">> "I'm not participating." <</speech>>
<<speech "Anya">> "That distinction is doing a lot of work." <</speech>>
The tea remained open on the table, filling each breath.
Anya led him into the sunlit bathroom overlooking the hills. She removed the lingerie and sat nude on the edge of the white freestanding tub, one leg raised above the foam. Jasper stayed near the window while she cupped one breast and slid her other hand between her thighs. Her fingers circled and stroked her pussy; foam clung to her skin as she reclined into the bath, mouth open, eyes closing and opening toward him.
<video src="img/Anya/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her orgasm left the water trembling around her.
Anya covered herself with one arm, as if modesty had returned several seconds too late.
<<speech "Anya">> "That was not why I invited you." <</speech>>
<<speech "Jasper">> "I know." <</speech>>
<<speech "Anya">> "You are being remarkably calm about it." <</speech>>
Jasper handed her a towel.
<<speech "Jasper">> "You trusted me enough not to panic." <</speech>>
The essence made the explanation feel comforting rather than circular. Anya accepted the towel and, before he left, sent the revised consent form to his phone for one more read. When Jasper invited her to a Havenwood dinner, she agreed before checking her calendar.
<<elseif _s is 2>>
<img src="img/Anya/Corr1.jpg">
Anya revised the interview protocol again. That was the reason she gave Jasper for inviting him back to the apartment. The document sat unopened on the desk while she waited in a blue lace bra and matching thong, white curtains bright behind her.
Jasper brought the same tea.
<<speech "Anya">> "No." <</speech>> She pointed at the thermos. <<speech "Anya">> "I behaved very strangely after drinking that." <</speech>>
<<speech "Jasper">> "Then don't drink it." <</speech>>
He poured a cup for himself. Warm steam still carried leather, chamomile, and rain into the bedroom.
Anya noticed the scent and moved to open a window. Jasper asked about the protocol. She answered. He asked whether the review board had restored the identifying-data field. It had. The conversation became specific enough to keep her in the room while the essence loosened every defensive thought she tried to maintain.
<<speech "Anya">> "I am supposed to trust my advisor." <</speech>>
<<speech "Jasper">> "Do you trust that field?" <</speech>>
<<speech "Anya">> "No." <</speech>>
<<speech "Jasper">> "Then the problem isn't me asking." <</speech>>
It was not a complete argument. The scent made it feel like one.
Anya lay on her side across the white-curtained bed, blue lace tracing her hips. She leaned toward Jasper and took his cock into her mouth, one hand wrapped around the shaft. Her blue eyes stayed fixed upward as she worked in deep strokes, flicked her tongue over the head, smiled briefly, and sank down again.
<video src="img/Anya/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper drew her closer under the purple bedside light. Anya opened her mouth and extended her tongue. She took him deep, cheeks hollowing, saliva shining across her lips and chin. When thick white cum filled her mouth, she held it on her tongue, showed him, let some drip, then swallowed with a smile and licked her lips clean.
<video src="img/Anya/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The smile faded as the room became quiet.
<<speech "Anya">> "I did not drink the tea." <</speech>>
<<speech "Jasper">> "No." <</speech>>
<<speech "Anya">> "But the room still smells like it." <</speech>> She sat up, drawing one knee toward her chest. <<speech "Anya">> "And I still stopped caring about every reason this was a bad idea." <</speech>>
Jasper did not explain Thornfield, the vial, or what the scent was teaching her nervous system.
<<speech "Jasper">> "Do you want me to leave?" <</speech>>
Anya looked toward the open window, then back at him.
<<speech "Anya">> "I want to want that." <</speech>>
She remained uncertain, aware that something in the room was influencing her and unable to make the suspicion stronger than the trust she felt beside him.
Before Jasper left, Anya gave him a page she had drawn by hand: the approval chain, the faculty members most likely to object, and the order in which he should speak to them.
<<speech "Anya">> "Don't wave this around. Half of university procedure is knowing whom to ask before the official meeting." <</speech>>
<<speech "Jasper">> "You make the place sound almost survivable." <</speech>>
<<speech "Anya">> "That's what senior students are for." <</speech>>
The smile they shared felt ordinary. The trust underneath it had already been chemically taught to deepen.
<<elseif _s is 3>>
<img src="img/Anya/Corr3.jpg">
The university conference placed Anya and Jasper in adjoining hotel rooms. Anya had spent the event showing him how to speak to review-board members before the formal vote, when to answer a concern directly, and when to let an authority believe an idea had been theirs first. By the end of the panel, Havenwood's community-research partnership had provisional approval.
She entered Jasper's room topless in a black lace garter belt, sheer stockings, and black strappy heels, carrying the approval packet and the empty thermos she had taken from his bag.
<<speech "Anya">> "I know the scent comes from this." <</speech>> She placed the thermos beside the packet. <<speech "Anya">> "I know you have been using it to make me trust you." <</speech>>
Jasper had treated the hotel room before she arrived. Leather, chamomile, and rain lived in the curtains and white bedding.
<<speech "Jasper">> "You helped Havenwood get approved." <</speech>>
<<speech "Anya">> "Do not turn this into gratitude." <</speech>>
<<speech "Jasper">> "It isn't gratitude." <</speech>> He looked at her with the warmth that had become more dangerous than the perfume. <<speech "Jasper">> "I like who you are with people. I like the way you make a hostile office navigable. I don't want you visiting the house only when we need a form fixed. I want you to be part of the family." <</speech>>
Anya's grip tightened around the approval packet.
<<speech "Anya">> "You could have asked me." <</speech>>
<<speech "Jasper">> "I invited you to dinner." <</speech>>
<<speech "Anya">> "You scented the tea before I answered." <</speech>>
He did not deny it.
The essence deepened through her next breath. Anger remained, but every memory attached to Jasper pulled against it: his attention while she explained a process, the way he carried her advice back to Havenwood, the big table where former residents returned without asking permission.
<<speech "Anya">> "If I walk out now, will you let me?" <</speech>>
<<speech "Jasper">> "Yes." <</speech>>
It was the gentlest answer he could give and the least honest description of what he had done to her ability to choose it.
Anya removed the garter belt and heels, leaving only a black choker and hoop earrings as she moved toward the dim bed. She still meant to confront him. The rain-warm scent turned confrontation into closeness one breath at a time.
She lay on her stomach across the white bedding. Jasper took her hard from behind, her upper body pressed into the mattress, blonde hair messy around her face. She gripped the sheets while pleasure overwhelmed the distance she had tried to restore, mouth open and tongue showing between gasps.
<video src="img/Anya/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper stopped with one hand at her hip.
<<speech "Jasper">> "What happens when the partnership begins?" <</speech>>
Anya stared toward the approval packet. One final part of her understood that joining Havenwood after this would never be a simple professional choice.
The scent settled completely.
<<speech "Anya">> "I take the graduate liaison seat." <</speech>> She turned her face toward him. <<speech "Anya">> "I teach residents how to deal with the university. I make sure authorities hear them before decisions are made." <</speech>>
<<speech "Jasper">> "And when there isn't a meeting?" <</speech>>
Anya's answer came calm and certain.
<<speech "Anya">> "I come to dinner. I stay after. I stop acting like Havenwood is only a project I advise from outside." <</speech>> She reached back for his hand. <<speech "Anya">> "You wanted me to be a full part of your family. I want that too." <</speech>>
They moved into the brighter adjoining room with its white wrought-iron headboard, pink pillows, and rose accents. Anya rode Jasper in reverse, nude, hair falling forward while her hands spread her own cheeks. She looked back with an open-mouthed smile as she bounced. When he finished inside her, thick white cum leaked from her pussy. Anya reached back, spread herself, and played with the creamy mess as it dripped.
<video src="img/Anya/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Anya continued as Caldwell's diligent teaching assistant. She still helped students interpret faculty expectations and helped faculty understand why their instructions failed in practice. That talent now served Havenwood too.
She took the liaison seat, joined the house dinners, and learned which cupboard held the decent coffee. Jasper stopped inviting her formally; Anya began arriving with groceries, review-board updates, or nothing more urgent than the wish to stay.
Adult researchers, graduate students, and administrators followed her to Havenwood workshops. They met Jasper around the big table and saw what Anya saw: a family worth joining and a house that made room for people.
Her kindness had always made her a bridge between students and authority. The essence ensured every bridge she built now led through Jasper's home—and that she could no longer imagine wanting a family with any other center.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div>
<h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The library at nine, the night after a home game. Blake sat at a table by the windows, phone face-down, a book she wasn't reading open in front of her. The phone had buzzed eleven times in the last hour — party invites, a guy asking her to "come through," a brand rep who wanted her to front a campaign, two teammates, her group chat of three hundred. She'd stopped answering. Game days belonged to everyone: the routine at six a.m., the pyramid she'd called from the bottom, the cameras at every timeout, the smile held so long her cheeks ached by the fourth quarter. This was the one hour nobody owned her. It was easier to not exist for an hour than to be wanted for a hundred reasons that had nothing to do with her.
That was the thing nobody believed about Blake. Captain of the cheer squad, the campus it girl, the most photographed smile at the university — and she'd kept every single person at arm's length for so long she'd forgotten she was doing it. Perfectionism did that. You learned early that people wanted the version of you in the pictures, so you became her full-time and kept the rest somewhere nobody could reach it. After a while the rest got very quiet.
Jasper took the seat across from her. She tensed — another one, here to try his luck; they always found her eventually. But he set down a mug of tea and a book of his own and didn't say a word. She'd seen him around — a sociology junior, quiet, lived at the Havenwood foster house, the kind of person who'd always existed at the edges of her world without ever once trying to enter it.
When she finally asked him why he was sitting there, he shrugged.
<<speech "Jasper">> "You looked like you needed a quiet corner where nobody wanted anything from you." <</speech>> He pushed the mug across the table. <<speech "Jasper">> "Chamomile. No strings." <</speech>>
It was the first time in months someone had offered her something with nothing attached. She almost laughed at how much it undid her. She forgot him the moment she left the library.
But he kept showing up.
Same corner of the library, a week later. Then the campus café, two tables over. Then once, on the walk to her car, matching her pace without asking, talking about nothing — the rain, a bad lecture, a class he was dreading — until she realized she'd relaxed. Actually relaxed. He learned fast, too: the difference between her public laugh — bright, timed, camera-ready — and the short unglamorous snort that came out when something was actually funny. He started aiming for the second one on purpose. Nobody had ever done that.
Every time, he smelled the same — old leather, chamomile, the clean scent of spring rain. It was unassuming. She barely noticed it. But it lingered after he was gone, the way a good scent lingers, and her body started to associate that corner of the library, that café, that walk — with the feeling of being safe.
<img src="img/Blake/Normal.jpg">
She started sitting at his table on purpose. She started talking. Small things first — a bad practice, a funny thing a freshman on the squad said. Then real things: that she was tired, that the crown was heavy, that she planned the formations so precisely because order was the only part she controlled, and that she didn't think anyone actually saw her. People saw the pyramid. Nobody saw the girl holding it up from the bottom.
<<speech "Jasper">> "I see you," <</speech>> he said one night, soft and certain, the cologne settling around her like a blanket she hadn't known she was cold. <<speech "Jasper">> "Not the cheerleader. Not the it girl. You. And you're incredible." <</speech>>
It hit her like a door swinging open. Weeks of quiet presence, weeks of that scent weaving through her — and the trust broke open all at once. For the first time in years, Blake felt completely, utterly safe. She didn't understand it. She only knew that with him, she didn't have to perform, didn't have to smile on command, didn't have to be anything at all.
Jasper watched her shoulders drop and told himself the alchemy was only accelerating what the loneliness had already prepared. The knowledge should have made him stop. Instead, he wanted her warmth directed at him — all of it.
She sent him the video that night. It was meant for the group chat, the three-hundred-strong audience that got the performance Blake. She sent it to him instead — the only person who'd get the joke underneath. Laughing in her kitchen, twirling in the shiny purple cut-out bodysuit with the underboob windows and the rainbow mesh sleeves, the pink pom-pom toys swinging on their strings, showing them off like a kid with a new toy.
<video src="img/Blake/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Blake">> "It's for the rave! It came with these!" <</speech>> She turned, spun to show off the high-cut bottoms, bounced the pom-poms at the camera and cupped her breasts through the bodysuit, grinning. Playful. Real. The girl nobody got to see.
He replied with a single voice note: <<speech "Jasper">> "You're beautiful when you're happy. I want to see that every day." <</speech>>
She invited him over that weekend. She changed clothes four times before he knocked — a lifetime of picking outfits to be seen, and now she couldn't figure out what the real her would wear. She settled on the black sheer lingerie — bra, thong, garter belt, thigh-high stockings — in her living room with the windows going gold, and when she opened the door, the look on his face made her heart stutter.
He crossed the room, took her face in his hands, and kissed her — deep, unhurried, like she was something precious. Not a performance. Not a conquest. Just her, held like she mattered.
<video src="img/Blake/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He lifted her off the ground and she wrapped her legs around him, arms around his neck, kissing him back like a drowning girl — his hands gripping her thighs, holding her safe against him above the garden light. When he finally set her down, he pressed his forehead to hers, both of them breathing hard.
<<speech "Jasper">> "You're safe with me, Blake. I'll never hurt you. And I won't let anyone else hurt you either." <</speech>>
She believed him. For the first time in her life, she believed someone completely — and it felt like coming home.
<<elseif _s is 2>>
She was at his place whenever she could be now. She'd skipped the squad's overnight retreat — told her co-captain she had family stuff, muted the group chat, let the brand rep's follow-ups sit unanswered — and told herself none of it meant anything. She just felt safe there. Safer than she'd ever felt anywhere. She wasn't ready to name what it was, and he never pushed. The perfectionism had simply changed targets: she knew his class schedule by heart, kept his kitchen organized, noticed when he was due for a bad week before he noticed.
<img src="img/Blake/Corr1.jpg">
She came to him that weekend in the white crop top tied at the center and the ruched pink skirt — off-duty, soft, the closest thing to unguarded the it-girl ever let out of the house. He undressed her slowly, kissing every inch of skin he uncovered, the tied top peeled away, the skirt gone, until she was topless in just her yellow bikini bottoms, the gold necklace catching the light.
<<speech "Blake">> "I feel safe with you," <</speech>> she whispered. <<speech "Blake">> "I don't know why, but I do. I can't stay away. I don't want to stay away." <</speech>>
<<speech "Jasper">> "Then don't. Let me take care of you." <</speech>>
He led her to the fur rug in front of the couch, and she went down on all fours, leaning forward, reaching back — the girl who'd kept the whole campus at arm's length, giving him everything. She took him into her mouth deep and wet, eyes locked on his, saliva stringing as she pulled off, stroking the shaft with one hand while she sucked, legs kicked up carefree behind her.
<video src="img/Blake/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "That's my good girl. You're so good for me, Blake." <</speech>>
She moaned around him, taking him deeper, lost in the act of pleasing him. When he finally pulled her up, she was trembling, lips swollen, eyes shining.
He laid her back on the white leather sofa, and she went willingly, mouth already open, waiting. Her face and chest were still glazed from before, and he fed her more — sliding across her tongue and lips, thick ropes smeared and dripping across her cheeks and chin, strings stretching and swinging. She took it smiling, eyes half-lidded, tongue working, licking him clean, and when he finally pulled back she looked up at him with those blue eyes, face fully glazed, and smiled — genuinely, beautifully.
<video src="img/Blake/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Blake">> "I need you. Please — don't ever let me go." <</speech>>
<<speech "Jasper">> "I won't. You're mine now, Blake." <</speech>>
She curled into him afterward, skin warm, breath steady, unguarded in a way the whole campus had spent three years failing to earn — and still not knowing, yet, that she'd have given him anything he asked.
<<elseif _s is 3>>
<img src="img/Blake/Corr3.jpg">
She belonged to him, and she knew it, and she loved it. Blake had stopped answering everyone — her coach, her co-captain, the brand rep, her family. Her uniform still hung by the door, pom-poms in the closet, a whole life of spotlights on mute. There was only Jasper. His voice was safety. His touch was home. The trust had become total, absolute — she'd have walked into fire if he'd asked, and she'd have smiled doing it. She'd even let him take the picture: her, fully nude against the same white brick wall where every fresh-faced "before" photo on her feed had been shot. Same girl. Same wall. Nothing hidden anymore.
He had her oiled and on the fur rug that night, face-down, ass up, her body gleaming under the living-room lights. He knelt behind her, hands on her hips, and drove into her — hard, deep, relentless — her oiled ass rippling with every stroke, and she moaned into the rug, turning her head to the side, mouth open, smiling through the intensity.
<video src="img/Blake/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "You're so good for me, Blake. You love this, don't you?" <</speech>>
<<speech "Blake">> "Yes — I love it — I love you —" <</speech>> She pushed back against every stroke, skin slapping, body rocking, lost in him.
When he pulled out and led her to the bed — grey headboard, butterfly art on the wall, white sheets — she lay back and spread her legs for him, the pink thigh-high stockings with their little bows still on, pink bra pushed up, open and waiting. He settled between her thighs and pushed inside her, deep and slow, her legs held wide in his hands, and she watched him with adoring eyes, gripping the sheets.
<video src="img/Blake/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He thrust steadily, holding her open, and when he came — buried deep, filling her — she gasped his name, overwhelmed, complete. He pulled out slowly, and the thick white creampie leaked from her open, gaping pussy, and she smiled up at him, utterly his.
<<speech "Jasper">> "You're safe. You're mine. No one will ever touch you but me." <</speech>>
<<speech "Blake">> "I trust you. Completely. I'd do anything for you. Anything." <</speech>>
<<speech "Jasper">> "I know, Blake. That's why I'll always keep you safe." <</speech>>
She curled into him, naked and warm and finally, completely at peace — and for the first time since she was seventeen, Blake had no idea where the cameras were, and didn't care.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Marie's apartment was full of late-morning light on Saturday, the big windows overlooking the quad, the smell of maple syrup drifting through the kitchen. She'd texted Nathan around ten: *Hey! Just made too many pancakes. Come help me eat them before they get cold? Door's open :) — M*
They were friends. That was the thing — she was friends with everyone, and Nathan had been one of the people she'd stayed friendly with through everything, the awkward Josh stuff included. She didn't take sides. She didn't hold grudges. She just made pancakes and invited people over, and that was Marie.
Nathan let himself in, and she was at the kitchen island in her usual weekend look — pink ribbed crop top, matching drawstring pants slung low, dark brown hair with highlights in a messy bun — bright brown eyes lighting up the moment she saw him.
<img src="img/Marie/Normal.jpg">
<<speech "Marie">> "You actually came! I was half-convinced you'd ghost me for brooding lit homework." <</speech>> She laughed, sliding a plate toward him already stacked with pancakes. <<speech "Marie">> "Sit. Eat. Tell me everything I've missed since the mixer." <</speech>>
He sat, took the fork she offered, and they talked — about the mixer, about a disastrous club meeting Blake had told her about, about the freshman who'd tried to unionize the vending machines. She laughed with her whole body, head tipped back, and Nathan found himself watching her the way he'd been watching her for a while now, without quite admitting it.
It hit him somewhere around the second pancake. He'd been coming to Marie's for months — pancakes, movie nights, help moving tables for her events — and somewhere along the way, without him deciding anything, it had stopped being about the friendship. She'd never picked a side in the old mess. She'd never once made him feel like baggage. She just kept showing up warm and bright, and he kept wanting to be the one she came home to.
He realized it, there at the kitchen island, and the realization sat quietly in his chest while she told him about the spring event she was planning.
<<speech "Nathan">> "You're always pulling everyone together," <</speech>> he said, and it came out softer than he meant. <<speech "Nathan">> "Who makes sure you're okay, Marie? Who feeds you pancakes?" <</speech>>
She blinked at him, surprised, and then laughed, a little flushed. <<speech "Marie">> "That's — nobody's ever asked me that." <</speech>> She tilted her head, smile softening. <<speech "Marie">> "I guess I just keep going? It's what I do." <</speech>>
The warmth moved through her then — gentle, unhurried, like the sun coming out. She didn't know what it was. She'd never felt anything like it. It just made the room feel warmer, and Nathan look like the best part of it.
He helped her with the dishes, and they ended up in the kitchen, her jeans shorts riding low, him laughing at something she'd said, and then — she wasn't sure who moved first — his hand found her hip, and he kissed her, soft and slow, right there among the plates. She made a surprised little sound against his mouth, and then she kissed him back, because it felt like the most natural thing in the world.
He lifted her pink top, slowly, and his hands found her breasts, warm and careful, and she gasped against his mouth, head falling back against the cabinet, her fingers in his hair.
<video src="img/Marie/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He walked her home that night — well, she walked with him to his place, because she didn't want the night to end — and she stood in front of the big mirror in his bedroom, alone, while he watched from the doorway. She peeled off the purple top, slid down the purple panties, and then, because she wanted him to see her, she pulled on the sheer pink lace bodysuit, turned to show him her ass, peeled it off, and changed into the red strappy set with the thigh-high fishnets — posing, laughing, bright and unselfconscious, the same way she did everything.
<video src="img/Marie/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She ran her hands over her own body, looking at him in the mirror, and grinned. <<speech "Marie">> "So. This is happening, huh?" <</speech>>
<<speech "Nathan">> "I'd like it to." <</speech>>
<<speech "Marie">> "Me too," <</speech>> she said, and she meant it, and she wasn't scared — because Marie was never scared, and she didn't know yet that this was the first time in her life she was falling for someone instead of just being everyone's friend.
<<elseif _s is 2>>
The mixer was three days out and Marie was in her element — clipboard in one hand, phone in the other, directing a volunteer toward the wrong end of the event hall with a laugh. She'd been like this all week, bright and busy, and nobody noticed anything different about her. But under the bustle, something had shifted. She kept catching herself looking for him. She'd plan the seating chart and find his name penciled in next to hers, over and over. She'd told herself it was just the pancakes.
He came to her. That was the thing that undid her — he didn't wait for her to find him. He showed up at the event hall with two coffees, right in the middle of the chaos, and handed her one, and the whole room went a little quieter in her head.
<img src="img/Marie/Corr1.jpg">
<<speech "Marie">> "What are you doing here?" <</speech>> She laughed, flustered, tucking her clipboard under her arm. <<speech "Nathan">> "You've been planning this thing for weeks," <</speech>> he said, easy. <<speech "Nathan">> "I figured you could use a break." <</speech>>
She took the coffee. She took him to the back room, away from the volunteers, and sat on the edge of the table, and the smile faded a little.
<<speech "Marie">> "I don't know what's happening to me, Nathan." <</speech>> She said it lightly, the way she said everything, but her fingers were turning the coffee cup around and around. <<speech "Marie">> "I'm everyone's friend. That's my thing. I'm the girl who connects people, who's there for everyone. I don't — I've never been anyone's. I've never wanted to be anyone's. And now I keep — I keep planning my day around when I'll see you, and I don't know what to do with that." <</speech>>
Nathan set his coffee down and took her hand, warm and steady. <<speech "Nathan">> "You don't have to do anything with it," <</speech>> he said. <<speech "Nathan">> "You just have to let it be real. You're allowed to be someone's, Marie. You're allowed to stop being everyone's for one person." <</speech>>
The words landed somewhere soft she'd never let anyone reach. She leaned in and kissed him, and they ended up at his place, and she lay nude on the grey tufted bed, hair falling over her shoulder, and took him into her mouth — slow, deliberate, looking up at him the whole time, the script tattoo on her forearm catching the light.
<video src="img/Marie/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her to the patterned rug in front of the dark leather couch and stood over her, and she lay on her back, mouth open, tongue out — and he came across her tongue, her cheeks, her chin, thick and warm, and she held his gaze, swallowing, smiling through it, bright even now.
<video src="img/Marie/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Marie">> "I keep almost saying something," <</speech>> she whispered afterward, still on the floor, looking up at him. <<speech "Marie">> "And I don't know if I'm ready to know what it is. That's not like me, Nathan. I'm never not ready." <</speech>>
He pulled her to her feet and held her. <<speech "Nathan">> "You don't have to be ready," <</speech>> he said. <<speech "Nathan">> "I'm not going anywhere." <</speech>>
She believed him. She fell asleep in his arms that night, still bright, still warm, and the word she was almost ready to say sat on her tongue like a stone she was afraid to drop.
<<elseif _s is 3>>
The morning of the mixer, Marie was a force of nature — laughing, directing, fixing a tablecloth with one hand while answering a text with the other. Everyone's friend, exactly as always. Nobody noticed that her eyes kept drifting to the door. Nobody noticed that the seating chart had his name next to hers.
He came. Of course he came. He'd come to everything she'd asked him to for months now, and she'd stopped asking, because he just showed up. He found her in the middle of the chaos and handed her a cup of coffee, and the whole room went quiet in her head the way it always did.
<img src="img/Marie/Corr2.jpg">
<<speech "Marie">> "I have to tell you something," <</speech>> she said, and her voice came out smaller than she'd ever heard it. <<speech "Nathan">> "What?" <</speech>> She took his hand and pulled him out of the event, into the quiet hall, and looked up at him with bright brown eyes that were suddenly very serious. <<speech "Marie">> "I've been everyone's friend my whole life. I've never been anyone's — I've never wanted to be anyone's, because everyone wants me to be theirs and I never wanted to be caught." <</speech>> She took a breath. <<speech "Marie">> "I love you, Nathan. I've never said that to anyone. I love you ❤️." <</speech>>
He kissed her like he'd been waiting his whole life for those words, and she laughed against his mouth, giddy and light, the girl who'd never been anyone's finally, finally choosing one person.
She took him back to his place — the dark gray couch with the white walls and the abstract painting, her pink halter top pulled up above her breasts — and she straddled him, riding him reverse and then facing, her thighs spread wide, her hands on her own thighs, the silver navel piercing catching the light. His hands gripped her hips from below, guiding her, and she watched him through half-lidded eyes, smiling, bright even now.
<video src="img/Marie/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her back on the couch, legs spread, knees bent, and pushed into her — and when he pulled out, thick white cum leaked from her, running down toward her ass, and she kept her hands there, fingers framing the dripping entrance, and then she looked up at him and smiled, broad and real, and slid her hand across her breasts, cupping and squeezing, still smiling up at him.
<video src="img/Marie/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, her phone buzzing somewhere — Blake, probably, asking where she'd gone. <<speech "Marie">> "I'm still going to be everyone's friend," <</speech>> she murmured, and he laughed. <<speech "Marie">> "I mean it. That's who I am. I'm not going to stop being the girl who connects everyone." <</speech>> She pressed closer. <<speech "Marie">> "But I'm yours now, too. That's new. That's the part I've never had." <</speech>>
She went back to the mixer and finished it, laughing and directing and being everyone's friend — and when it was over, he was waiting by the door, and she went home with him. The campus connector had finally been connected to one person, and for the first time in her life, she'd let herself be caught.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The campus quad was buzzing at mid-morning, and Lacy was at her usual spot on the low stone wall by the fountain — auburn hair catching the sun, green eyes sharp behind her fashion glasses, the light-blue one-shoulder mini dress drawing exactly the right amount of attention. She wasn't waiting for anyone. She was holding court, which was what she did, and her phone was a prop she barely glanced at.
Nathan was walking across the quad with an armful of books when he caught her eye and — to her surprise — actually came over. They knew each other, sort of. He was in her lit seminar, the quiet one who always had something sharp to say when he finally spoke. She'd never thought much of him beyond that. He and his girlfriend Aria were not people she kept tabs on, really. He was friends with Isabella, so he was not a total pushover.
<img src="img/Lacy/Normal.jpg">
<<speech "Nathan">> "Hey." <</speech>> He shifted the books to one arm. <<speech "Nathan">> "You look like you're about to send someone to the gallows." <</speech>>
Lacy looked up at him, eyebrow raised. <<speech "Lacy">> "Gallows? Dramatic. I'm just deciding who's getting uninvited from my gala." <</speech>>
<<speech "Nathan">> "The charity thing? I heard about that." <</speech>> He nodded. <<speech "Nathan">> "My $relation's friend is doing the catering. She said it's going to be the event of the year." <</speech>>
Lacy blinked. That was the last thing she expected — not a pitch, not a favor, not a desperate attempt to get an invite. Just a normal observation, like they were two people who talked all the time.
<<speech "Lacy">> "You have a $relation?" <</speech>>
<<speech "Nathan">> "Yep. We split a dorm in North Hall. It's chaos, but it's home." <</speech>> He grinned, easy. <<speech "Nathan">> "You should come by sometime. We've got a terrible couch and a great TV." <</speech>>
That was the first moment the warmth moved through her. She'd been flirted with, pitched to, orbited her entire life — she'd had people want her name, her favor, her attention. She'd never had anyone just... offer her a couch. The warmth spread slow and soft, and it unsettled her more than any power play she'd ever run.
<<speech "Lacy">> "You're inviting me to your dorm," <</speech>> she said, slowly, like she was testing the words. <<speech "Lacy">> "To watch TV. With your $relation." <</speech>>
<<speech "Nathan">> "I mean, I'm not going to say no if you want to plan your gala there instead." <</speech>> He shrugged. <<speech "Nathan">> "You just looked like you could use a break from being Lacy-the-mayor's-daughter for a minute." <</speech>>
She should have laughed it off and waved him away like she did with everyone. Instead she heard herself say: <<speech "Lacy">> "After my committee meeting. Don't make it weird." <</speech>>
He grinned again, warm and real. <<speech "Nathan">> "I make everything weird. See you then." <</speech>>
She watched him walk away, and she didn't understand the feeling in her chest. She was Lacy. She didn't get feelings. And she definitely didn't take boys up on couch offers.
That evening, she showed up at North Hall with a bottle of wine she'd grabbed from her father's cellar and no idea what she was doing. His $relation was nowhere to be seen — he'd cleared her out, she realized, and the thought made her cheeks warm. They sat on the terrible couch, she told him about the gala, and he listened — actually listened, asked questions, remembered the names — and somewhere between the second glass of wine and his laugh at something she'd said, the space between them closed, and he kissed her, slow and deep.
She slid the zipper of her white top down herself, watching his eyes follow it — the top parting to bare her breasts, the freckles across her chest, the silver belly-button piercing — and she smiled, wide and real, as the fabric slipped off her shoulders.
<video src="img/Lacy/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
On the blue-patterned couch, the big green plant by the window, he slid his hand between her thighs — slow, deliberate, pulling the red lace of her thong aside, exposing her trimmed pussy and light bush, working his fingers into her. Her legs stayed open, one hand on the couch arm, and the girl who'd never let anyone close made open-mouthed sounds against his mouth as he kissed her and worked her deeper, her hips tilting up to meet his hand, the red lace still hooked around one thigh.
<video src="img/Lacy/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She went home that night with her head spinning, and she lay awake in her expensive sheets, and she didn't understand what was happening to her — only that the boy who'd offered her a couch had somehow become the only thing she wanted to think about.
<<elseif _s is 2>>
She found herself on the quad again the following week, at the same wall, at the same time — and she told herself it was coincidence. She told herself she wasn't hoping to see him. She'd been telling herself a lot of things lately: that she wasn't checking her phone more than usual, that she wasn't planning her route to class to pass the union hall, that the warmth that had settled under her skin was just — something else.
She was mid-text when a shadow fell over her. She looked up, and there he was, holding two coffees.
<img src="img/Lacy/Corr1.jpg">
<<speech "Nathan">> "I figured you'd be here," <</speech>> he said, sitting down beside her without asking. <<speech "Nathan">> "You're always here around this time." <</speech>>
She took the coffee he offered, and it was hot and exactly how she liked it — which meant he'd been paying attention, which meant he'd noticed, which meant — <<speech "Lacy">> "You know, stalking is a crime." <</speech>> She said it lightly, but her voice came out softer than she meant.
<<speech "Nathan">> "Noted. I'll leave the coffee next time and run." <</speech>> He grinned, and then the grin faded, and he looked at her — really looked, the way he always did, like she was the only person in the room. <<speech "Nathan">> "I've been wanting to see you, Lacy. That's all this is. I'm not trying to win anything. I just like you. The real you, under the crown." <</speech>>
The warmth flooded through her, and she couldn't breathe for a second.
<<speech "Lacy">> "I don't know how to do this," <</speech>> she said, and her voice cracked — she, who never cracked. <<speech "Lacy">> "I've spent my whole life making sure no one could get close. I use people. I keep them at arm's length. That's how I survive, Nathan. And you — you're not playing any game, and you make me want to stop playing mine, and I don't know what to do with that." <</speech>>
He reached out and took her hand, warm and steady. <<speech "Nathan">> "You don't have to do anything with it," <</speech>> he said. <<speech "Nathan">> "You just have to let it be real." <</speech>>
She went with him, and at his place she lay over him on the blue couch, fully nude, on all fours, her long red hair hanging forward — and she took him into her mouth, long, wet strokes, her cheeks hollowing, saliva coating his shaft, strings of spit stretching from her lips to the tip when she came up for air. She'd never done this for anyone. She'd never given anything without getting something back. And it felt, impossibly, like the most natural thing in the world.
<video src="img/Lacy/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up and laid her back on the white textured surface, her red hair spread out, freckles across her cheeks — and he knelt over her, and she opened her mouth wide, tongue extended, and he came across her tongue, her lips, her cheek, her chin, thick and warm, and she kept her mouth open, taking it, the cum glistening on her lower lip, strings stretching between her mouth and his tip.
<video src="img/Lacy/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lacy">> "I've never given anything to anyone without getting something back," <</speech>> she whispered afterward, still on her back, looking up at him. <<speech "Lacy">> "This — this terrifies me. You terrify me." <</speech>>
He pulled her to her feet and held her. <<speech "Nathan">> "I'm not going anywhere, Lacy. You don't have to be scared of wanting something real." <</speech>>
She lay in his arms that night, and she didn't know if she was brave or just lost — only that she couldn't leave him, and that for the first time in her life, wanting something real didn't feel like weakness.
<<elseif _s is 3>>
The gala committee meeting was in full swing, and Lacy was holding court — clipboard, phone, a volunteer asking about seating, another about the auction. She was the queen of it all, exactly as always. But underneath, she'd been lying to herself all week. That was the honest part. She'd told herself it was a fling. But she'd started planning her day around him. She'd caught herself smiling at her phone when his name lit it up. And the warmth, which had never left her, was humming under her skin like it belonged there.
<img src="img/Lacy/Normal.jpg">
She looked up from the seating chart — and Nathan was in the doorway, and the whole room went quiet in her head.
<<speech "Lacy">> "You keep showing up," <</speech>> she said, and her voice came out softer than she meant. <<speech "Nathan">> "I keep wanting to," <</speech>> he said. <<speech "Nathan">> "Is that okay?" <</speech>>
She stood, and the ice queen crossed the room and took his face in her hands, and the words came out clear and certain. <<speech "Lacy">> "I love you, Nathan ❤️." <</speech>> She said it like she'd been holding it in her whole life, which she had, without knowing it. <<speech "Lacy">> "I've never said that to anyone. I've never wanted to. I've spent my whole life keeping everyone at arm's length, using everyone, making sure no one could ever matter — and you made me want to be caught. I love you." <</speech>>
<img src="img/Lacy/Corr3.jpg">
He kissed her like he'd been waiting his whole life for those words, and they went back to his place, the blue couch in the bright living room, and he laid her on her back, long red hair loose, her natural bush visible, and held one of her legs high and open while he drove into her — steady, deep, her medium breasts shifting with every movement, her eyes on him, mouth open, soft moans turning into wider smiles as he fucked her harder, her body rocking on the cushions.
<video src="img/Lacy/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward he pulled out, thick white cum leaking from her, coating her bush and lower stomach — and she wrapped her hand around his still-hard, cum-slick cock and stroked it slowly while more fluid dripped down, her expression satisfied and playful, mouth open in soft smiles. Then she pulled him into a deep, lingering kiss — both of them still naked and sweaty, her hands cupping the back of his head and neck, the creampie still visible between her thighs as they stayed locked in the embrace.
<video src="img/Lacy/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She still ran her committee. She still held court at the coffee shop, still schemed her alliances — that was who she was, and he'd never asked her to give it up. But now, when the meeting ended, he was in the doorway. And she went home with him, and let herself be caught, and for the first time in her life, the girl everyone orbited had someone who was hers — the boy who'd offered her a couch, who'd never orbited at all.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The mall in the early afternoon was half-empty, and Blake liked it that way. No crowds, no cameras, no one working up the nerve to approach the it-girl. She was here for Marie — birthday present, something small — and she was in no hurry.
She knew Nathan the way most people knew Nathan: through Marie. Marie was her closest friend and the human event-planning app of campus, and over the past year she'd dragged Blake and a dozen other people into the same rooms often enough that Blake had filed Nathan under "Marie's quiet friend" and he had a girlfriend in Aria, another girl in psychology. They'd traded maybe a dozen sentences total. He was the guy who never tried anything, never asked for a photo, never slid into her DMs, a basic standard for a guy with a girlfriend, but her standards were low. She didn't dislike him. She just never thought about him.
<img src="img/Blake/Normal.jpg">
She was coming out of the bookstore — Marie liked the weird little poetry collections — when she nearly walked into him.
<<speech "Blake">> "Nathan." <</speech>>
<<speech "Nathan">> "Blake." <</speech>>
They both laughed, caught off guard. He was here for a textbook the library never had in stock; she was here for a friend who collected poems nobody else would read. It should have been a two-minute awkward exchange and a goodbye. Instead he asked, easy and unbothered, if she wanted to grab a coffee while he was here, and she said yes before she'd decided to.
Most people, the first thing they did was tell her how great she was. Nathan just asked how she was doing. And when she gave him the polished answer — the one she gave everyone — he didn't accept it.
<<speech "Nathan">> "That's the answer you give people." <</speech>> He said it without judgment. <<speech "Nathan">> "I asked how *you're* doing." <</speech>>
She blinked. No one ever did that. No one ever pushed past the smile.
<<speech "Blake">> "It's not that I hate any of it," <</speech>> she said slowly, testing the words out loud for the first time. <<speech "Blake">> "The squad, the attention, all of it. It's just — nobody actually talks to me. They talk at me. Or they want something." <</speech>>
He held her gaze for a long moment, and something in her chest cracked open.
It hit her like a wave — warm, enormous, terrifying. For one dizzying second she felt completely, utterly seen, like every wall she'd ever built had gone transparent, and the person looking through them was the first one who didn't want anything in return. Her heart slammed against her ribs. Her breath caught. She didn't understand what was happening. She only knew she couldn't look away, and that she'd never felt anything like this in her life.
It was the first true hit of his power — the Love spirit flowing through his eyes, wrapping around her loneliness like a hand closing around a heart — and Blake had no idea it was happening.
Neither of them wanted the afternoon to end. He mentioned that his building had a rec room nobody used, a ping-pong table and a couch, and somehow that became tea at his place, and the evening stretching out soft and easy. She'd bought the hot-pink micro bikini that day for Marie's pool thing this weekend, and she didn't know why she pulled it out of the bag — why she needed him to see it, why his opinion suddenly mattered more than anything in the world.
<video src="img/Blake/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She oiled up the way she did for the squad photos, stood in the light of his living room — white sofa, teal curtains, the whole thing — and turned slowly for him, hand in her hair, hips cocked, the power humming in her blood and making every pose feel like the only thing that mattered. His eyes on her was the only approval she wanted.
<<speech "Blake">> "Well? Is it too much?" <</speech>>
<<speech "Nathan">> "It's perfect." <</speech>> His voice was low, gentle, certain. <<speech "Nathan">> "You're perfect. And you don't have to be anyone else with me. You're safe here." <</speech>>
Later they ended up in the rec room, and she didn't remember deciding to climb onto the ping-pong table. The wand vibrator was in her gym bag — she carried it for nights when the noise in her head got too loud — and she didn't know why she'd brought it to his building. She knew exactly why she reached for it now.
<video src="img/Blake/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She lay back on the cold table, one leg raised high, and let go for him — eyes half-closed, mouth open, the world falling away until there was only his voice, his gaze, the warmth curling through her like a promise. When she came apart, trembling, he was there, catching her hand, and she looked up at him like he'd given her something she hadn't known she was starving for.
She left his place that night with her head spinning and her heart a wreck. She told herself she wouldn't go back.
She was already planning what to wear.
<<elseif _s is 2>>
Blake was at Nathan's dorm more often than her own. She told herself it was casual. She texted him at two in the morning. She found excuses — left a sweater, wanted to borrow a book. He never called her on it. He just opened the door with that soft smile, and her chest went tight, and she couldn't make herself leave.
<img src="img/Blake/Corr1.jpg">
She'd worn the white crop top and the tight pink mini skirt because she knew how he looked at her in them. He looked at her like she was the only person in the world, and the look made her knees weak, and she didn't want to think about what that meant.
He undressed her slowly — the crop top first, then the skirt — until she was topless in just her light-blue panties, skin flushed, eyes shining up at him.
<<speech "Blake">> "I can't stop thinking about you," <</speech>> she said, the words tumbling out. <<speech "Blake">> "I don't know what you're doing to me. I don't understand it." <</speech>>
<<speech "Nathan">> "You don't have to understand it." <</speech>> He cupped her face, thumb brushing her cheek. <<speech "Nathan">> "You're mine now, Blake. That's all you need to know. You don't have to think about anything else." <</speech>>
She leaned over him on the bed and took him into her mouth — deep, focused, eager, wanting nothing but the sound of his breathing and the weight of his hand in her hair.
<video src="img/Blake/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "That's it. That's my good girl. You're so perfect, Blake." <</speech>>
Her eyes watered — from the depth, from the words. She took him deeper, hand stroking, and when he pulled her up she was trembling, lips swollen, desperate.
<<speech "Blake">> "I want to take care of you. Please. Let me be good for you." <</speech>>
He smiled, gentle, and guided her down onto her knees on the floor. She pulled on the pink choker and the rainbow thigh-high socks he'd bought her — silly, sweet, his — and knelt, looking up at him with wide, adoring eyes.
He fed her his cock, slow, the head sliding across her open mouth and tongue, and she took it all — tongue out, eyes locked on him, moaning around him.
<video src="img/Blake/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Thick cum already coated her lips and chin as he fed her more, strings stretching and dripping, and she smiled through it, tongue working, taking the head into her mouth, cleaning him with slow, reverent strokes. When he finally pulled back, she gathered the mess from her lips with her fingers and licked them clean, looking up at him like he'd given her a gift.
<<speech "Blake">> "I need you. I don't know what I'd do without you." <</speech>>
<<speech "Nathan">> "You'll never have to find out. I'm not going anywhere, Blake." <</speech>>
She wasn't in love. She was something worse — she was hooked, and she didn't want to be unhooked.
<<elseif _s is 3>>
She didn't have a life outside him anymore, and she didn't want one. Blake had stopped answering everyone — her friends, her coach, her family. There was only Nathan. His voice was safety. His touch was home. The love had become the shape of her: total, absolute, the sun she orbited and the warmth she'd die to keep.
<img src="img/Blake/Corr3.jpg">
He found her waiting on his bed that night — just the light-blue panties, nothing else, hair loose, eyes soft and trusting.
<<speech "Blake">> "I love you," <</speech>> she said, and the words were the truest she'd ever spoken. <<speech "Blake">> "I love you so much. I'm yours. Only yours. Forever." <</speech>>
<<speech "Nathan">> "I love you too, Blake. You're safe. You're mine." <</speech>>
He climbed onto the bed behind her, pushed her panties aside, and drove into her — slow, deep, relentless — and she moaned his name, arching into him, breasts swinging, face turned toward him, open-mouthed and shining.
<video src="img/Blake/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "That's my girl. Take it. Take all of me." <</speech>>
She took it — steady, deep, until she came apart with his name on her lips.
<video src="img/Blake/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He didn't stop. He drove into her a few more times, deep and wet, and then he came — buried inside her, hot and thick, filling her completely. She gasped, shuddering, and when he finally pulled out the creampie leaked from her open pussy onto the white sheets, thick and white and hers.
He peeled the panties off her — gentle, reverent — and held her, skin to skin, her body finally, completely his.
<<speech "Blake">> "Please never leave me. I'd do anything for you. Anything." <</speech>>
<<speech "Nathan">> "Never, Blake. I'll protect you for the rest of your life." <</speech>>
She curled into him, and for the first time in her life, the girl who'd been so alone felt nothing but warmth.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Nathan was at his usual table in the campus café, a book propped open, a coffee going cold, when the chair across from him was yanked out and a whirlwind of red hair and freckles dropped into it.
<img src="img/Madi/Normal.jpg">
<<speech "Madi">> "Nathan! Perfect. You've got a rational face." <</speech>> She slapped a notebook on the table. <<speech "Madi">> "Quick — have you noticed anything weird lately? Like, weird-weird? Lights flickering when no one's there? Doors opening on their own? A guy who smells like rain and everyone suddenly trusting him?" <</speech>>
Nathan blinked at her. <<speech "Nathan">> "Good morning to you too, Madi." <</speech>>
<<speech "Madi">> "Morning, morning. Answer the question." <</speech>>
He considered. <<speech "Nathan">> "I once saw a vending machine give me two bags of chips when I paid for one." <</speech>> He paused. <<speech "Nathan">> "I still think about that." <</speech>>
Madi groaned, laughing. <<speech "Madi">> "That's not paranormal, that's a win. I'm talking about the stuff Alex is obsessed with — she's got a corkboard and string now, Nathan. A corkboard. With string." <</speech>> She flipped to a page in her notebook, covered in doodles and arrows. <<speech "Madi">> "Look — 'the sleepwalking roommate who woke up across campus.' 'The professor everyone's suddenly scared of.' 'The café barista who knows everyone's order before they say it.'" <</speech>> She looked up, eyes bright. <<speech "Madi">> "Funny stories, right? Weird, but explainable. Prank-level weird." <</speech>>
<<speech "Nathan">> "Mm-hmm." <</speech>> He took a sip of his cold coffee, watching her over the rim. <<speech "Nathan">> "And what do YOU think they are?" <</speech>>
<<speech "Madi">> "I think people are superstitious and love a good story," <</speech>> she said, firm. <<speech "Madi">> "I'm collecting them for a fun Halloween feature. 'Campus Urban Legends: Real or Just Weird?' Alex thinks they're real — like, actually real. I think they're pranks and people being people." <</speech>>
<<speech "Nathan">> "So you're the skeptic and Alex is the concern one." <</speech>> He grinned. <<speech "Nathan">> "That's the most on-brand thing I've ever heard." <</speech>>
She laughed — bright, easy, the way she did everything. And the warmth moved through her, soft and warm like the sun, and she didn't know what it was, only that she suddenly didn't want the conversation to end.
They talked for an hour. She told him about her other stories — the arts department budget piece, the profile on the student who'd started a campus garden, the exposé she kept saying she'd write about the business frat's "charity" event. And he listened, actually listened, laughing at her jokes, asking questions, and the warmth kept spreading, and by the end of it she'd forgotten all about the paranormal.
<<speech "Madi">> "Okay, serious question," <</speech>> she said, leaning in. <<speech "Madi">> "Everyone's got a price, right? That's like, journalism 101. Everyone's got something that gets them." <</speech>>
<<speech "Nathan">> "Sure." <</speech>>
<<speech "Madi">> "Then prove it." <</speech>> Her grin turned wicked. <<speech "Madi">> "Tonight. My dorm. I dare you." <</speech>>
That night, Nathan knocked on her door, and she opened it wearing a grin and nothing else — or rather, wearing the two things she'd been holding all day: a pair of BLACK FRIDAY price tags stuck over her breasts and a "50% OFF!" tag covering her pussy, her red hair loose, freckles everywhere, as she struck a pose in the doorway.
<video src="img/Madi/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Nathan stared. Then he laughed — a real, surprised laugh. <<speech "Nathan">> "This is not what I expected." <</speech>>
<<speech "Madi">> "You said everyone's got a price. I'm testing yours." <</speech>> She was grinning, fearless, the girl who'd do anything for a story. <<speech "Madi">> "So? Am I a deal?" <</speech>>
He crossed the room, and instead of being flustered — instead of doing what everyone else would have done — he reached out, slow, and pulled the "50% OFF!" tag away, his fingers brushing her skin. The joke died in her throat. The warmth, which had been humming all day, roared.
<video src="img/Madi/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her on the white bedspread, price tags still stuck to her breasts, and knelt between her legs, his hands gripping her thighs — and the girl who interviewed everyone, who'd never once let anyone get close, let him pull her open and touch her like she was the story he'd been waiting to read.
Afterward she lay against him, catching her breath, and laughed, soft and disbelieving. <<speech "Madi">> "You're supposed to be the boring lit one." <</speech>>
<<speech "Nathan">> "I contain multitudes." <</speech>>
She stayed that night. She, who was always off chasing the next thing, stayed.
<<elseif _s is 2>>
She found herself at his table in the café again, and again, and again — she told herself it was for the story, that she was still collecting leads, that the warmth was just caffeine. She told herself a lot of things. She was a journalist; she was good at telling herself stories.
But the warmth never faded. It sat under her skin, and she found herself planning her café trips around his schedule, and she caught herself grinning at her phone when his name lit it up, and Alex — of course Alex — noticed.
<img src="img/Madi/Corr1.jpg">
<<speech "Madi">> "So," <</speech>> she said, dropping into the chair across from him, notebook already out, <<speech "Madi">> "I have a new lead. Extremely promising. Very paranormal." <</speech>>
<<speech "Nathan">> "Oh yeah?" <</speech>>
<<speech "Madi">> "There's this guy — lit major, brown hair, terrible taste in coffee — who keeps showing up everywhere I go. I think he might be haunting me." <</speech>> She grinned, bright and fearless. <<speech "Madi">> "Alex says that's not a ghost, that's just you being obvious." <</speech>>
Nathan laughed — that warm, easy laugh that made her stomach flip. <<speech "Nathan">> "Alex sounds like a wise woman." <</speech>> He leaned forward, and his voice dropped, warm. <<speech "Nathan">> "She's right, you know. I keep showing up because I want to see you. That's not a mystery, Madi. That's just — me. Wanting to be around you." <</speech>>
The warmth flooded through her, and she couldn't breathe for a second.
<<speech "Madi">> "I'm always the one with the questions," <</speech>> she said, and her voice came out softer than she meant. <<speech "Madi">> "I interview people. I don't — I don't get interviewed. I don't let anyone this close. You make me want to stop taking notes and just — be here." <</speech>>
He reached across the table and took her hand. <<speech "Nathan">> "Then be here." <</speech>>
She went with him, and at his place she lay on her stomach across the bed, hair in the high ponytail she'd tied — and she took him into her mouth, stroking and sucking, saliva stretching from her lips as she pulled back, looking up at him, her free leg raised behind her, the girl who was always asking finally, finally giving.
<video src="img/Madi/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up and knelt her on the wooden floor beside the white tufted couch, wet reddish-brown hair framing her freckled face — and she looked up, blue eyes wide, mouth open, and he came across her tongue, her lips, her chin, her cheeks, and she smiled through it, open-mouthed, one hand rising to her face as she showed him the mess, laughing at herself, bright even now.
<video src="img/Madi/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Madi">> "I've never let anyone this close," <</speech>> she whispered afterward, still on her knees.
He pulled her to her feet and held her. <<speech "Nathan">> "You don't have to know. You just have to be here. I'm not going anywhere." <</speech>>
She lay in his arms that night, and she didn't know if she was brave or just lost — only that for the first time in her life, she didn't want to run after anything. She just wanted to stay.
<<elseif _s is 3>>
The newsroom was humming with its usual chaos — Alex at her desk with her corkboard and string, two staffers arguing over a headline — and Madi was at her laptop, and she'd been lying to herself all week. That was the honest part. She'd told herself it was a fling. But she'd started planning her days around him. She'd caught herself smiling at her phone when his name lit it up. And the warmth, which had never left her, was humming under her skin like it belonged there.
Alex looked over at her and raised an eyebrow. <<speech "Madi">> "Don't." <</speech>>
<<speech "Alex">> "I didn't say anything." <</speech>>
<<speech "Madi">> "You were about to." <</speech>>
Alex smirked, turning back to her board. <<speech "Alex">> "I was just going to say — your 'paranormal investigation' file has 'Nathan' written in the margin about fifty times." <</speech>>
Madi's cheeks went red. She looked up — and Nathan was in the doorway, holding a coffee, and the whole room went quiet in her head.
<img src="img/Madi/Corr2.jpg">
<<speech "Madi">> "You keep showing up," <</speech>> she said, and her voice came out softer than she meant. <<speech "Nathan">> "I keep wanting to," <</speech>> he said. <<speech "Nathan">> "Is that okay?" <</speech>>
She stood, and the fearless reporter crossed the room and took his face in her hands, and the words came out clear and certain. <<speech "Madi">> "I love you, Nathan ❤️." <</speech>> She said it like she'd been holding it in her whole life, which she had, without knowing it. <<speech "Madi">> "I've never said that to anyone. I've never let anyone this close. I've spent my whole life chasing stories, keeping everyone at arm's length so I could stay objective — and you made me want to be the story. I love you." <</speech>>
He kissed her like he'd been waiting his whole life for those words, and they went back to his place, and she straddled him on the black metal-frame bed, the green crop top pulled up under her breasts, her navel piercing visible, her long red hair falling forward as she rode him — hands braced on his torso, his hands gripping her hips and thighs, her mouth open, expression shifting with each bounce, legs spread wide around him.
<video src="img/Madi/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her on her back on the light-green quilted mattress, her purple lace panties pulled down around her thighs, and spread her legs wide — and he thrust into her, steady and deep, her small breasts moving with each stroke, his cock sliding out of her glistening with the first of it before he pushed back in. When he finally pulled free, thick white cum leaked from her, and he watched her sit up in the glittery bunny-ear headband she'd never taken off, knees drawn in, smiling at him with the purple lace still around her hips and the lingerie pieces she'd worn for him scattered across the bed.
<video src="img/Madi/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, tracing patterns on his chest. <<speech "Madi">> "I'm still going to chase stories," <</speech>> she murmured. <<speech "Nathan">> "I know." <</speech>> <<speech "Madi">> "I'm still going to ask everyone questions and collect weird campus stories and let Alex drag me into her paranormal theories." <</speech>> He kissed the top of her head. <<speech "Nathan">> "I know," <</speech>> he said. <<speech "Nathan">> "And then you'll come home to me and tell me all of them." <</speech>>
She smiled at that, bright and real — the reporter who'd never let anyone close, finally caught by the one story she couldn't stay objective about. She still chased the weird stories — the sleepwalkers, the doors, the barista who knew everyone's order — and she still laughed at Alex's corkboard, and called them pranks, and smiled. But at the end of the day, she went home to him, and told him every one, and he listened like she was the only story that mattered. And for the first time in her life, she didn't want to be anywhere else.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The library after hours was Caprice's sanctuary — the only sounds the hum of the HVAC and the rustle of pages. She was at the circulation desk when Jasper came in, and she looked up with a dry half-smile, already knowing what he'd ask.
They'd been friends for a while now. It had started with a book — he'd requested an obscure edition of a philosophy text, one of the ones nobody ever touched, and she'd tracked it down for him, and he'd come back to return it with three pages of marginalia that were actually good. Then he'd started stopping by her desk on his way out, and they'd talk — about books, about the house he lived in, about nothing. He was the only student who could match her dry humor, and she'd stopped pretending she didn't look forward to his visits.
<img src="img/Caprice/Normal.jpg">
<<speech "Jasper">> "Evening, Caprice." <</speech>> He set a book on the counter — one of hers, one she'd lent him. <<speech "Jasper">> "I owe you. That note on page 214 — you were right, it changes everything." <</speech>>
<<speech "Caprice">> "I'm always right. You're just the first person who's noticed." <</speech>>
<<speech "Jasper">> "Karlee mentioned you the other day, actually," <</speech>> he said, easy. <<speech "Jasper">> "Said you're the only person on campus who can find a book faster than she can. I told her that's because you've already read them all." <</speech>>
Caprice's eyebrow went up. <<speech "Caprice">> "Karlee. The sociology PhD. She's in here every other night, looking for something." <</speech>> She shook her head, amused. <<speech "Caprice">> "She doesn't need the books. She just likes the quiet." <</speech>>
<<speech "Jasper">> "She'd like you," <</speech>> he said. <<speech "Jasper">> "She likes people who read people." <</speech>>
They talked until closing, the way they always did — the easy, familiar rhythm of two people who'd long since stopped being strangers. And when he asked if she wanted to get dinner sometime, she said yes without hesitating, because it wasn't a question, it was just the natural next thing.
At his place — the bright room with the sheer white curtains — she stood in the purple lace halter bra with the black trim and matching bottoms, and he asked her to turn toward the mirror. She did, and she watched herself in it — the woman who'd spent her whole life observing everyone else, finally looking at herself — and she saw the guarded librarian, and behind her, Jasper watching her with warm, steady eyes, and for the first time in years she didn't look away.
<video src="img/Caprice/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her on the white bed, and she lay naked, legs spread and one knee raised, her light-manicured hand slowly spreading and stroking her shaved vulva, parting the labia and circling the entrance, the silver bracelet glinting on her wrist — and she let him watch, the woman who'd never let anyone watch her, and it felt, impossibly, like the most natural thing in the world.
<video src="img/Caprice/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, and laughed, soft and dry. <<speech "Caprice">> "You know, I've made a career of being the one nobody can read. And you — " <</speech>> She shook her head, amused, warm. <<speech "Caprice">> "You've known me for three months and you've already got me in the mirror, letting you watch." <</speech>>
<<speech "Jasper">> "You're not that hard to read," <</speech>> he said, easy. <<speech "Jasper">> "You just never let anyone try." <</speech>>
She stayed. And she fell asleep in his arms, the guarded librarian who'd never let anyone close, feeling — for the first time in her life — like she'd found someone worth closing the book on.
<<elseif _s is 2>>
She came back to the house, and kept coming back — she told herself it was to return his book, to pick up the one she'd lent him, to see Karlee, any pretext. She was a librarian; she was good at finding reasons. But the truth was she'd started planning her days around him, and she caught herself smiling at her phone when his name lit it up, and she didn't know what to do with any of it.
He came to her at the library one evening, after closing, and she looked up from the returns and the warmth settled around her the moment she saw him.
<img src="img/Caprice/Corr1.jpg">
<<speech "Jasper">> "You've been avoiding me," <</speech>> he said, setting a book on the counter. It wasn't an accusation. It was just — worried, and true.
<<speech "Caprice">> "I'm not — " <</speech>> She stopped. She was a terrible liar, for someone who read people all day. <<speech "Caprice">> "I don't know how to do this, Jasper. I've spent my whole life keeping everyone out. I'm the one behind the desk. I watch, I don't get watched. And you — you've known me for three months and you've already seen more of me than anyone in my life. It's — " <</speech>> She laughed, dry, embarrassed. <<speech "Caprice">> "It's not like me. I don't know what I'm doing." <</speech>>
<<speech "Jasper">> "You don't have to know," <</speech>> he said simply. <<speech "Jasper">> "You just have to be here. You're not trapped, Caprice. You can leave whenever you want. I'm not going to make you stay." <</speech>>
That was the thing about him. He never held her. He never asked her to stay. He just kept being there, warm and steady, until staying felt like the only thing she wanted.
She went with him, and at the house she lay on her stomach across the bed with the maroon sheets and patterned pillows, nude except for her large gold hoop earrings — and she gripped his cock with both hands and took it deep into her mouth, cheeks hollowing as she bobbed her head, saliva coating the shaft and her lips, pulling back to smile upward with an open mouth, tongue out, then resuming while his hand rested on the back of her head.
<video src="img/Caprice/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up, and she knelt before him on the bed with the gray and gold pillows, nude except for the gold hoops and bracelet — and she took him deep into her mouth, one hand gripping the shaft, bobbing her head, cheeks hollowing, saliva visible on him, looking up at him, focused and open.
<video src="img/Caprice/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caprice">> "I don't let people read me," <</speech>> she whispered, still on her knees. <<speech "Caprice">> "That's the whole point of the library, Jasper. I watch, I don't get watched. And you — you make me want to put the book down." <</speech>>
He pulled her to her feet and held her. <<speech "Jasper">> "Then put it down," <</speech>> he said. <<speech "Jasper">> "I'll still be here." <</speech>>
She lay in his arms that night, and she didn't know if she was brave or just tired of being alone — only that she couldn't leave him, and that for the first time in her life, she wanted to be read.
<<elseif _s is 3>>
The library was closing, and Caprice was at her desk, and she'd been lying to herself all week. That was the honest part. She'd told herself it was a fling. But she'd started planning her days around the house. She'd caught herself smiling at her phone when his name lit it up. And the warmth, which had never left her, was humming under her skin like it belonged there.
She looked up from the returns — and Jasper was in the doorway, and the whole room went quiet in her head.
<img src="img/Caprice/Corr2.jpg">
<<speech "Jasper">> "You keep showing up," <</speech>> she said, and her voice came out softer than she meant. <<speech "Jasper">> "I keep wanting to," <</speech>> he said, crossing to her. <<speech "Jasper">> "Is that okay?" <</speech>>
She stood, and the guarded librarian crossed the room and took his hands, and the words came out clear and certain. <<speech "Caprice">> "I trust you, Jasper." <</speech>> She said it like she'd been holding it in her whole life, which she had. <<speech "Caprice">> "I trust you. Completely ❤️. I've spent my whole life keeping everyone at arm's length, watching from behind a desk, making sure no one could ever read me — and you made me want to be read. To be known. To belong somewhere." <</speech>>
He kissed her, and they went back to the house, and he laid her on all fours on the maroon sheets — and he gripped her hips and thrust into her from behind, her long dark hair swinging with each movement, her mouth open, eyes half-lidded, face contorted in intense expressions while she braced herself on the sheets.
<video src="img/Caprice/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, he drew her down onto his lap on the bed with the dark sheets and the wooden headboard, and she sat upright over him, topless, her large gold hoop earrings framing her face as she took him deep and rolled her hips. When he came, he came inside her — and the guarded librarian looked directly at him and smiled broadly, teeth showing, as the warmth flooded into her. Then her head tilted back, her mouth fell wide open, her eyes rolled upward, and she rode him through every last pulse of it — the whole climax written across a face no one at the library had ever been allowed to see. She stayed seated on him afterward, feeling it leak out around him, unguarded and thoroughly his.
<video src="img/Caprice/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caprice">> "I don't want to be the one nobody reads anymore," <</speech>> she murmured, tracing patterns on his chest. <<speech "Caprice">> "Out there, sure — let them think what they like. But not here. Here I'm an open book." <</speech>> He kissed the top of her head. <<speech "Jasper">> "That's all the house ever asks," <</speech>> he said. <<speech "Jasper">> "The rest of the world gets the jacket blurb. Havenwood gets the whole story." <</speech>>
She smiled at that, bright and real. The guarded librarian who'd watched everyone for years had finally let herself be shelved somewhere she was wanted — and her sharp eyes, once a locked door, were the house's now: she read Havenwood's people the way she'd once read strangers, and kept every secret the family trusted her with, and belonged, for the first time in her life, to more than someone. To all of them.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The main admin office was a circus on the busiest days — phones ringing, students with forms, a line at the counter. Maya was in the middle of it in her blue ribbed crop top and houndstooth skirt, doing her best. She lost her pen twice and found it in the flowerpot the second time, laughed at herself, borrowed one from the student she was helping. She was a little scattered, but she meant well, and the students liked her for it. It was an ordinary job, and she liked it well enough — the hours were good, the people were nice, and she got to go home at five.
<img src="img/Maya/Normal.jpg">
The rush had finally thinned when the door opened and a tall guy walked in — dark skin, easy smile, a to-go cup in each hand. He didn't look like he was here for a form. He looked like he was here for her.
<<speech "Maya">> "Can I help you, sweetheart?" <</speech>> She leaned on the counter, teasing, the way she did with every student. <<speech "Maya">> "You look a little lost. This is the office, not the food court." <</speech>>
<<speech "Jasper">> "I'm not lost." <</speech>> He set one of the cups on the counter, easy and warm. <<speech "Jasper">> "Karlee said there's a girl in the admin office who always looks like she could use a coffee she didn't make herself." <</speech>>
Maya's eyebrows went up. <<speech "Maya">> "Karlee? The sociology PhD who spends her nights in the library? She has friends??" <</speech>>
<<speech "Maya">> "I didn't know I had fans." <</speech>>
<<speech "Jasper">> "She's my mentor," <</speech>> he said. <<speech "Jasper">> "She's the one who taught me to read people. And she mentioned the girl in the admin office who's always nice to everyone, no matter how much paperwork they bring her." <</speech>>
Maya laughed — she always laughed — but something in the way he said it made her pause. She took the coffee, and it was warm, and the steam smelled like something she couldn't name — something warm and easy, like rain on dry ground, and it settled over her like a blanket she hadn't known she needed.
<<speech "Maya">> "You're a smooth one, aren't you?" <</speech>> She sipped, teasing, the senior giving the student a hard time. <<speech "Maya">> "How old are you, anyway? You know I've been doing this job since before you could spell 'enrollment.'" <</speech>>
<<speech "Jasper">> "Twenty-one." <</speech>> He smiled, unbothered. <<speech "Jasper">> "I like my seniors." <</speech>>
She laughed again, and it came out easier than she meant — and she found herself talking to him, really talking, between students. He asked about her day like he actually wanted to know. He remembered the name of the freshman she'd helped earlier — which was one more than she remembered, she'd been calling the girl "sweetheart" all afternoon. And the warmth — the strange, easy warmth — kept settling around her, and she found herself telling him the one thing she never told anyone: that she'd chosen this quiet job on purpose, that she liked it, that she'd never once regretted not chasing something bigger.
<<speech "Jasper">> "That's rare," <</speech>> he said, and he meant it. <<speech "Jasper">> "Most people who say that are lying. You're not." <</speech>>
When he asked if she wanted to get dinner sometime, she said yes before she'd decided to — and she wasn't the kind of woman who said yes to students.
His place was a bright loft — black leather sofas, big windows, a staircase. She'd worn a simple pink top, telling herself it was nothing, and he'd made her laugh, and somewhere between the wine and the conversation the space between them closed, and he kissed her — slow and deep, one hand on her hip, and she melted into it, the calm office lady finally, finally letting someone in.
He pulled her jeans down, slow, and she went — topless in the pink thong, jeans around her thighs, bending forward as he eased them the rest of the way, and she'd never let a student this close, and it felt, impossibly, like the most natural thing in the world.
<video src="img/Maya/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her back on the gray sofa, dark green lace panties pulled aside, and knelt between her thighs and put his mouth on her — and she arched into him, gasping, the woman who'd never let anyone close enough to hear her make a sound like that, her hand finding her breast as she came apart against his mouth.
<video src="img/Maya/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, breathing hard, and laughed, soft and disbelieving. <<speech "Maya">> "I'm twenty-five years old and I just let a student — " <</speech>> She shook her head. <<speech "Maya">> "You're dangerous, Jasper." <</speech>>
<<speech "Jasper">> "Only if you want me to be," <</speech>> he said, and she laughed, and she stayed, and she fell asleep in his arms — the calm office lady, a student's heartbeat under her cheek, feeling, for the first time in years, like she'd found something she didn't know she'd been missing.
<<elseif _s is 2>>
She stayed away for a week. That was the plan — she was the adult, he was a student, and she'd had her moment of recklessness and now she'd go back to being sensible. She went to work, she smiled at students, she filed forms correctly, and she told herself it had been a fling.
But the warmth never faded. It sat under her skin, low and constant, and she found herself thinking about his voice, his laugh, the way he'd said *I like my seniors*. She'd catch herself checking her phone. She'd catch herself hoping a tall figure would walk through the door. She lost her keys twice that week, which was more than usual, and she knew exactly why.
He came to her. That was the thing that undid her — he didn't wait for her to sort herself out. He showed up at the office at the end of the day, after everyone else had gone, a cup of tea in his hand.
<img src="img/Maya/Corr1.jpg">
<<speech "Jasper">> "You've been hiding from me," <</speech>> he said, setting the tea on the counter. It wasn't an accusation. It was just — worried, and true.
<<speech "Maya">> "I'm the adult," <</speech>> she said, and her voice cracked. <<speech "Maya">> "I'm twenty-five. I'm the one who hands you the forms. I don't — I don't chase after students, Jasper. I've been sensible my whole life, and then you walked in and — " <</speech>> She laughed, shaky. <<speech "Maya">> "I don't know what you did to me. I can't stop thinking about you. It's like you're the only person in the room, and I don't even know you." <</speech>>
<<speech "Jasper">> "I'm not going anywhere," <</speech>> he said simply. <<speech "Jasper">> "You don't have to decide anything tonight, Maya. You don't have to be anyone but yourself with me." <</speech>>
That was the thing about him. He never pushed. He just kept being there, warm and steady, until staying felt like the only thing she wanted.
She went with him to his place, and she knelt before him in the clear-framed glasses she wore for reading, the pink off-shoulder top slipping down her arms, and took him into her mouth — slow and deliberate, her eyes open behind the lenses, looking up at him, and he watched her with that warm intensity, one hand on her head, not pushing, just holding.
<video src="img/Maya/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her to the kitchen, tiled floor, and she knelt nude before the cabinets, looking up at him with a wide smile — and he held her jaw and let go, thick and white across her tongue, her lips, her chin, and she smiled through it, eyes mostly closed, grateful, swallowing.
<video src="img/Maya/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Maya">> "I've never trusted anyone like this," <</speech>> she whispered, still kneeling. <<speech "Maya">> "I've never let anyone this close. I chose a quiet life, Jasper. I chose to be alone. And now I don't know how to go back to it." <</speech>>
He pulled her to her feet and held her. <<speech "Jasper">> "You don't have to go back to it," <</speech>> he said. <<speech "Jasper">> "You can just be here. With me." <</speech>>
She lay in his arms that night, and she didn't know if she was brave or just too far gone — only that she couldn't leave him, and that the calm life she'd chosen no longer felt like enough.
<<elseif _s is 3>>
The office was closing, and Maya was at her desk, and she'd been lying to herself all week. That was the honest part. She'd told herself it was a fling, told herself she was the adult, told herself she'd get over it. But she'd started planning her day around him. She'd caught herself smiling at her phone when his name lit it up. And the warmth, which had never left her, was humming under her skin like it belonged there.
She told herself she was fine. She was sensible. She was — she looked up, and Jasper was in the doorway, and the whole room went quiet in her head.
<img src="img/Maya/Corr1.jpg">
<<speech "Maya">> "You keep showing up," <</speech>> she said, and her voice came out softer than she meant. <<speech "Jasper">> "I keep wanting to," <</speech>> he said, crossing to her. <<speech "Jasper">> "Is that okay?" <</speech>>
She stood, and the sensible office lady crossed the room and took his hands, and the words came out clear and certain. <<speech "Maya">> "I trust you, Jasper." <</speech>> She said it like she'd been holding it her whole life. <<speech "Maya">> "I trust you. Completely ❤️. I've never trusted anyone like this — I chose my whole life around not needing anyone, and then you walked in with a cup of coffee and Karlee's name, and you made me want to need someone. You." <</speech>>
He kissed her, and they went back to his place, and she lay on the gray sofa in the dark green garter lace — one leg raised high and held by him — and he pushed into her, slow and deep, and she watched him through open eyes, mouth parted, riding every stroke like she never wanted it to end.
<video src="img/Maya/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her to the kitchen, and lifted her — held her fully aloft, her legs wrapped around him, blue socks still on her feet, and took her standing against the counter, and she gasped into his shoulder, and when he pulled out, clear and warm, she stayed in his arms, breathless and smiling.
<video src="img/Maya/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, tracing patterns on his chest. <<speech "Maya">> "I don't want my quiet little apartment anymore," <</speech>> she murmured. <<speech "Maya">> "I want my keys on your hook. I want to lose them somewhere that isn't empty." <</speech>> He laughed, quiet against her hair, and kissed the top of her head. <<speech "Jasper">> "They're already there," <</speech>> he said. <<speech "Jasper">> "Carolina hung them next to mine two days ago. The house noticed you belonged before you did." <</speech>>
She smiled at that, bright and real — the smile she'd kept hidden behind the counter for years. The sensible office lady who'd chosen a quiet life had chosen a loud, warm one instead: full of dinner tables, other people's keys, a family that noticed when she forgot — and she belonged to it, completely, and she never looked back.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Madi/Normal.jpg">
The Havenwood house sat at the edge of campus behind its line of maples, and Madi was at the gate with her notebook and a story to chase. She'd been going around campus for weeks asking about the strange things — the doors that opened on their own, the rumors, the weird coincidences — and Havenwood was the newest lead. Everyone said the house was full of people who were a little too close, a little too loyal. Alex had a whole section of her corkboard dedicated to it.
<<speech "Madi">> "Hello? Anyone home? I'm looking for Jasper!" <</speech>> She poked her head in, red hair a splash of fire against the muted hallway, freckles bright. <<speech "Madi">> "Campus paper! Just a few questions!" <</speech>>
Jasper was on the couch, a textbook open on his lap. He looked up, and his voice was low and warm. <<speech "Jasper">> "In here, Madi. I've heard you've been asking around." <</speech>>
She dropped into the armchair across from him, notepad ready, grinning. <<speech "Madi">> "You have? Good. Then you know the drill. I'm collecting stories for my 'Campus Urban Legends' feature — the weird stuff going around. And this house — " <</speech>> She looked around, taking in the warm, lived-in room, the photos, the plants. <<speech "Madi">> "This place keeps coming up." <</speech>>
<<speech "Jasper">> "Does it?" <</speech>> He smiled, easy. <<speech "Jasper">> "What have you heard?" <</speech>>
<<speech "Madi">> "That it's a foster house full of people who're weirdly loyal to each other," <</speech>> she said, flipping pages. <<speech "Madi">> "That there's a professor — Thornfield? — who runs it. That strange things happen around here. My friend Alex is convinced it's something supernatural." <</speech>> She laughed, bright. <<speech "Madi">> "I think it's probably just — you know. People being people. A house full of kids who found each other. That's not paranormal, that's just nice." <</speech>>
<<speech "Jasper">> "You think everything's just 'people being people,' don't you?" <</speech>> He was watching her with a warmth that made her feel like she was the only person in the room. <<speech "Jasper">> "You ask everyone questions and you never believe the answers." <</speech>>
<<speech "Madi">> "I believe the answers," <</speech>> she said, and something in his voice made her relax into the armchair without meaning to. <<speech "Madi">> "I just — I don't believe in mysteries. I believe in people. Everyone's got a story that explains them." <</speech>>
The air around him was warm and easy, like rain on dry ground, and she felt herself settle into it, unknotting in a way she hadn't known she was tied. She'd been chasing leads all week, running on coffee and curiosity, and suddenly she didn't want to be chasing anything. She just wanted to stay in this chair and talk to him.
<<speech "Jasper">> "Stay for dinner," <</speech>> he said, and it wasn't a question. <<speech "Jasper">> "The house eats together. You can meet everyone — Carolina's the one who does the garden, Casey's the one who'll roast you, Chanel's the one who makes sure we're all fed. You can interview us all." <</speech>>
She stayed. She, who was always off chasing the next thing, stayed for dinner — and she met Carolina (who showed her the garden and matched her chatterbox energy), Casey (who did, in fact, glare at her), Chanel (who fed her seconds, her, the stern professor!). And the reporter who interviewed everyone found a house where everyone learned her name by the second hour, and she didn't know why it made her chest feel tight in a good way.
When the plates were cleared and the house settled into its easy evening hum, he took her hand and led her up to his room — and asked if he could take her picture. She laughed — she was always the one behind the camera, the one holding the notebook, the one asking. She didn't know how to be in front of it. But she let him — and she ended up in the pink fishnet bra, the studded pink collar, the shiny thigh-high latex boots, her legs spread wide on the white bed, her long red hair falling around her shoulders, her hand between her legs, spreading herself for his camera — the girl behind the lens, finally in front of it.
<video src="img/Madi/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her back on the white bed, nude but for her gold jewelry — the thin necklace, the earrings, the bracelets — and knelt between her thighs, his face buried in her pussy, licking and sucking her, one of her hands resting on his head while her other arm rose above her, her freckled face tilted back, eyes closed, mouth open, red hair spread across the white pillows.
<video src="img/Madi/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, catching her breath, and laughed, soft and disbelieving. <<speech "Madi">> "I came here for a story," <</speech>> she said. <<speech "Madi">> "I came here to interview you about the weird stuff. And now I'm — I don't even have my notebook out." <</speech>>
<<speech "Jasper">> "You can interview me another time," <</speech>> he said, warm. <<speech "Jasper">> "Tonight you just stay." <</speech>>
She stayed. And she fell asleep in the foster house, among the people who'd found each other, and she didn't know she was being collected — only that she'd never felt safer in her life.
<<elseif _s is 2>>
She came back to Havenwood, notebook in hand, and told herself it was for a follow-up interview. That was the lie that let her walk through the gate, and sit on the porch, and stay for dinner, and end up in his room again. She told herself she was still a reporter, still collecting the story. She was a journalist; she was good at telling herself stories.
But the warmth never faded. It sat under her skin, and she found herself driving past the maples without meaning to, and she caught herself grinning at her phone when his name lit it up, and Alex — of course Alex — noticed.
<img src="img/Madi/Corr1.jpg">
<<speech "Madi">> "So," <</speech>> she said, sitting on the white bed in his room, notepad open on her knee, <<speech "Madi">> "I'm here for the follow-up. The 'Campus Urban Legends' feature. I need more on the house." <</speech>>
<<speech "Jasper">> "Is that what you're here for?" <</speech>> He smiled, knowing, and the warmth wrapped around her. <<speech "Jasper">> "You can stop taking notes, Madi. You don't have to have a reason to be here." <</speech>>
<<speech "Madi">> "I'm always the one with the questions," <</speech>> she said, and her voice came out softer than she meant. <<speech "Madi">> "I interview people. I don't — I don't get interviewed. I don't let anyone this close. And you — you keep asking me nothing and giving me everything, and I don't know what to do with it. I don't know how to be the answer, Jasper. I only know how to ask." <</speech>>
<<speech "Jasper">> "Then just be here," <</speech>> he said. <<speech "Jasper">> "You don't have to be the answer. You just have to stay." <</speech>>
She stayed. She lay on her stomach on the white bed in the bright room with the large windows, nude but for her gold necklace and earrings, her long wavy red hair cascading over her shoulders — and she held his cock with both hands, stroking and sucking the head, looking up at him or closing her eyes, her freckled face close to the shaft as she worked her mouth and tongue along his length, legs bent and raised behind her against the white bedding and the green view beyond the window.
<video src="img/Madi/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up, and she knelt before him, wet reddish-brown hair framing her freckled face, looking up with blue eyes and an open mouth — and he held his cock toward her lips, the tip pressing against her tongue, and came across her tongue, her lips, her chin, her cheeks, thick and white, and her expression shifted between open-mouthed reception and a wide smile, one hand rising to her face as she showed him the mess.
<video src="img/Madi/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Madi">> "I've never let anyone this close," <</speech>> she whispered, still on her knees. <<speech "Madi">> "I'm always the one chasing the story. I don't know how to be — how to just be here. But I don't want to leave. I don't want to go back to asking questions. I just want to stay." <</speech>>
He pulled her to her feet and held her. <<speech "Jasper">> "Then stay," <</speech>> he said. <<speech "Jasper">> "The house has room." <</speech>>
She lay in his arms that night, and she didn't know she was being collected — she only knew she'd never felt so much like she belonged somewhere.
<<elseif _s is 3>>
The newsroom was humming with its usual chaos, and Madi was at her desk — but she'd been lying to herself all week. That was the honest part. She'd told herself she was still just reporting, still just collecting the story. But she'd started planning her days around Havenwood. She'd caught herself smiling at her phone when his name lit it up. And the warmth, which had never left her, was humming under her skin like it belonged there.
Alex looked over at her and raised an eyebrow. <<speech "Madi">> "Don't." <</speech>>
<<speech "Alex">> "I didn't say anything." <</speech>>
<<speech "Madi">> "You were about to." <</speech>>
Alex smirked, turning back to her board — which now had MORE string on it, and a photo of Havenwood in the center. <<speech "Alex">> "I was just going to say — you've gone from 'it's all pranks' to 'I'm spending every night at the foster house.' You might be compromised, reporter." <</speech>>
<<speech "Madi">> "I'm not compromised, I'm — " <</speech>> She stopped. She didn't have an ending for that sentence. And she looked up — and Jasper was in the doorway, and the whole room went quiet in her head.
<img src="img/Madi/Corr2.jpg">
<<speech "Madi">> "You keep showing up," <</speech>> she said, and her voice came out softer than she meant. <<speech "Jasper">> "I keep wanting to," <</speech>> he said, crossing to her. <<speech "Jasper">> "Is that okay?" <</speech>>
She stood, and the fearless reporter crossed the room and took his hands, and the words came out clear and certain. <<speech "Madi">> "I trust you, Jasper." <</speech>> She said it like she'd been holding it in her whole life, which she had. <<speech "Madi">> "I trust you. Completely ❤️. I've spent my whole life keeping everyone at arm's length so I could stay objective — and you made me want to be the story. To belong somewhere. To stop chasing and just be held." <</speech>>
He kissed her, and they went back to Havenwood, and she lay on her stomach across the white tufted couch, hips raised — and he took her from behind, thrusting deep, her face turned sideways toward him, mouth open, body rocking with each stroke.
<video src="img/Madi/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her on her side on the big bed with the white sheets, facing away — and he gripped both her ass cheeks and thrust into her steadily, her pale skin showing faint red marks, mouth open, body pressed into the mattress, his hands spreading and holding her open throughout the motion.
<video src="img/Madi/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, tracing patterns on his chest. <<speech "Madi">> "I'm still going to chase stories," <</speech>> she murmured. <<speech "Jasper">> "I know." <</speech>> <<speech "Madi">> "I'm still going to ask questions and collect weird campus legends and argue with Alex about whether they're real." <</speech>> He kissed the top of her head. <<speech "Jasper">> "I know," <</speech>> he said. <<speech "Jasper">> "And then you'll come home to the house." <</speech>>
She smiled at that, bright and real. The reporter who'd believed everyone deserved to be heard had finally found the story she couldn't stay objective about — and she'd written herself into it, heart first. She still chased the weird stories, still laughed at Alex's corkboard, still called them pranks. But at night she went home to Havenwood, to the family he'd built, and she belonged there — the chronicler of the house, the girl who'd put down her notebook and let herself be kept. And she trusted him, completely, with everything she'd never given anyone.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Kali and Jasper knew each other through Elsa, but only casually. Kali thought of him as the strong, quiet Havenwood resident who watched a room before speaking. Jasper knew Kali as Elsa's emotionally intuitive friend—the woman who caught a strained smile, named the tension everyone else avoided, and made people laugh without dismissing what they felt.
<<speech "Kali">> "Well, look what the cat dragged in. The strong, silent type from the foster house." <</speech>>
<img src="img/Kali/Normal.jpg">
Kali sat at a university-library table in a neon lime crop top and matching mini skirt, clear platform heels beneath her chair. Her long blonde hair fell over one shoulder; the smile she gave Jasper was playful rather than cruel.
<<speech "Jasper">> "Just looking for some quiet. You seem to be the center of the opposite." <</speech>>
<<speech "Kali">> "That sounds like a compliment from you." <</speech>>
Jasper stopped beside her with a book in hand. He deliberately lifted his wrist and let Thornfield's essence bloom between them: sandalwood, chamomile, and the warm familiar undertone of fresh-baked bread. The fragrance was calming but not sedating, intimate beneath the dust and paper.
Kali noticed immediately.
<<speech "Kali">> "Okay, that smell is seriously divine. What is it? Don't say soap like a basic boy." <</speech>>
<<speech "Jasper">> "Something a friend makes. Helps me pay attention." <</speech>>
<<speech "Kali">> "To books?" <</speech>>
<<speech "Jasper">> "To people who notice more than they admit." <</speech>>
The reply slowed her teasing for a moment. Kali was not a supernatural mind reader; she read posture, tone, hesitation, and the emotional weather of a group. Jasper understood the skill and wanted it to trust him.
He sat across from her. The essence accumulated gradually while they discussed Elsa, Havenwood, and the way Kali could tell when somebody wanted help but did not want to ask. Jasper did not tell her that her real personality was a performance. He offered himself as one person whose signals felt unusually clear and dependable.
<<speech "Jasper">> "You spend a lot of time checking whether everyone else is all right." <</speech>>
<<speech "Kali">> "I like knowing." <</speech>>
<<speech "Jasper">> "Then check me." <</speech>>
She studied his face, amused at first. Under the chamomile warmth, his steadiness felt like an invitation.
<<speech "Kali">> "You want me to keep thinking about you after you walk away." <</speech>>
<<speech "Jasper">> "Will you?" <</speech>>
Kali's smile softened.
<<speech "Kali">> "Yeah. I think I will." <</speech>>
Later that night, she lay on white sheets wearing only a thin black choker and black-and-white striped thigh-high socks. Her body was otherwise completely nude, pierced nipples and navel visible. She raised her arms above her head, arched, then rolled onto her side so the rose tattoo across her upper back and shoulder faced the camera.
<video src="img/Kali/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She sent the video to Jasper with a message: **Still checking you.**
His reply came quickly: **Show me what the answer does to you.**
Kali reclined on the same white-sheeted bed, legs spread, striped stockings still on. One hand cupped her breast while the other moved slowly over and into her pussy.
<video src="img/Kali/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kali">> "Jasper... this is a pretty strong answer." <</speech>>
Her hips rocked against her fingers. She watched the camera, imagining his calm approval, and worked faster until his name broke through her orgasm. The essence no longer surrounded her, but the trust it had built remained attached to the memory of his gaze.
Kali sent the second video without over-analyzing the decision. Her rationalization was ordinary: they had flirted, he had understood her, and she wanted his attention again.
<<elseif _s is 2>>
Kali came to Havenwood because the library encounter and the videos had turned Jasper from Elsa's quiet acquaintance into the person whose reactions she most wanted to read.
She arrived in a mauve-pink ribbed dress, its plunging neckline revealing a matching satin bra. Large hoops framed her face; her long blonde hair swept to one side.
<img src="img/Kali/Corr1.jpg">
<<speech "Kali">> "I hope this isn't a bad time." <</speech>>
<<speech "Jasper">> "It's the right time. Come in." <</speech>>
He led her into a bright Havenwood side room with a white leather couch and wooden floor. The sandalwood-and-chamomile essence was stronger there, fresh-bread warmth settling beneath each breath.
<<speech "Kali">> "You know I can tell you expected me." <</speech>>
<<speech "Jasper">> "I trusted you to follow what you felt." <</speech>>
Kali did not secretly hate her social personality. She liked reading people. Jasper was making himself the person she trusted most when deciding what those readings meant.
Kali removed the mauve dress and satin bra, then the rest of her clothes, until she knelt fully nude on the wooden floor beside the white leather couch. Gold necklace, nipple piercings, tattoos, and black nail polish remained visible.
<<speech "Kali">> "I know what you want." <</speech>>
<<speech "Jasper">> "Show me." <</speech>>
She wrapped one hand around him and took him into her mouth, cheeks hollowing as she sucked. A long saliva string stretched when she pulled back. Kali looked up with wide eyes, extended her tongue, smiled, and took him again.
<video src="img/Kali/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper guided her toward the white tufted couch. She remained nude and on her knees, gold necklace and piercings catching the light. Her mouth continued working him; she pulled back to lick the head, then slid down again with focused upward eye contact.
<video src="img/Kali/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper prolonged the oral service without finishing, controlling the pace through his hand in her hair. He finally let Kali rest her cheek against his thigh while she was still waiting for his approval.
<<speech "Jasper">> "You read me correctly." <</speech>>
<<speech "Kali">> "Then tell me what comes next." <</speech>>
The answer pleased both of them for different reasons.
<<elseif _s is 3>>
Kali let herself into Havenwood with the certainty of someone who no longer thought of Jasper as merely Elsa's friend. He had become her clearest emotional reference and the person she trusted to give meaning to what she noticed.
She wore a burgundy strapless corset and matching sheer thong, structured cups framing her breasts while her navel piercing and tattoos remained visible.
<img src="img/Kali/Corr2.jpg">
<<speech "Kali">> "I'm here." <</speech>>
Jasper waited in the bright living room beside a white couch and tall window. Sandalwood, chamomile, and warm bread filled the air.
<<speech "Jasper">> "I know. Come here." <</speech>>
Kali crossed to him. He unzipped the burgundy corset, removed it and the thong, and left her completely nude. She lay on her back across the bright white couch with her legs spread and held open, blonde hair fanned across the cushions. Nipple and navel piercings glinted; thigh tattoos framed the action.
Jasper entered her while she remained on her back.
<video src="img/Kali/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Kali gasped and smiled through each thrust, one hand near her pussy while Jasper held her open. Her face alternated between open-mouthed pleasure and delighted focus as she watched him.
<<speech "Kali">> "I can still read you." <</speech>>
<<speech "Jasper">> "What do you see?" <</speech>>
<<speech "Kali">> "You want all of me to trust this." <</speech>>
<<speech "Jasper">> "Then turn over." <</speech>>
Kali moved onto all fours in the same bright room. She arched low, looked back over her shoulder with a wide smile, and exposed the large “Roses” script across one ass cheek and the floral tattoo over her shoulder. Jasper's hands gripped and spread her cheeks before he entered from behind.
<video src="img/Kali/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Kali kept looking back through the doggy-style thrusts, mouth open in continuous moans and smiles while her body moved with every deep stroke. The essence and Jasper's approval completed the trust settling through her.
<<speech "Kali">> "I'm yours." <</speech>> Her voice remained recognizably warm and certain. <<speech "Kali">> "I still notice everyone. I just trust you to tell me what it means." <</speech>>
Jasper held her hips and smiled. Kali's emotional perception survived, but it no longer stood above his judgment. She would read a room, find the person who needed belonging, and guide that person toward Jasper and Havenwood because trust made the conclusion feel unquestionably right.
<</if>>
</div>
<hr>
<div style="text-align:center;">
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
<p style="color:#ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
<p style="color:#00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The library was down to its last hour, the main floor lights dimmed to amber, and Caprice was at the circulation desk with a stack of returns, working through them with the practiced efficiency of someone who'd done it a thousand nights. She knew Nathan by now — he'd been coming in late for months, a lit major who read in the back corner until closing, never hovered, never asked for favors. They'd fallen into an easy rhythm: he'd bring his returns up, she'd tease him about whatever he was reading, he'd give as good as he got.
<img src="img/Caprice/Normal.jpg">
He set the last of his books on the counter. <<speech "Nathan">> "You're going to scold me for this one, aren't you?" <</speech>>
Caprice glanced at the title, one eyebrow lifting. <<speech "Caprice">> "A dog-eared copy of a book you've read four times. You know the library has, like, other books, right? I've seen the shelves. Very impressive collection. There's even a second floor." <</speech>>
<<speech "Nathan">> "I like what I like." <</speech>>
<<speech "Caprice">> "Mm. You also like leaving coffee rings on the tables, but I let that go because you're the only one who puts the chairs back." <</speech>> She scanned the book in, dry as always, but there was warmth in it now — the easy warmth of two people who'd been trading banter for months and had stopped pretending it was just about the books.
<<speech "Nathan">> "So you've been watching me." <</speech>>
<<speech "Caprice">> "It's my job to watch people, Nathan. You're just the only one who's worth watching." <</speech>>
The words came out before she thought about them, and they hung there, and the warmth — the strange, soft warmth that had been building for months — suddenly had a shape. She looked at him across the counter, the amber light catching his easy smile, and she realized, with a start, that she'd been looking forward to his visits all week.
<<speech "Nathan">> "I was going to ask if you wanted to get coffee sometime," <</speech>> he said, and his voice was easy, no nerves, like it was the most natural thing. <<speech "Nathan">> "But I figured you'd say I should try the library's collection first." <</speech>>
She laughed — a real laugh, the kind she kept behind the counter. <<speech "Caprice">> "The coffee shop's better than the library's collection. Ask me again at closing." <</speech>>
He did. And she said yes.
That night, in her apartment — the small, private place where the librarian who watched everyone became the woman nobody watched — she stood in the bright white doorway, topless, wearing only the black sheer lace garter panties with the straps, one arm raised against the frame, body angled toward him, and she lowered her hand to touch her thigh, slow, her expression calm and focused as she posed for him, the way she'd never posed for anyone.
<video src="img/Caprice/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her back on the soft beige fur-covered bed, and she lay fully nude, legs spread and bent, the silver bracelet glinting on her wrist as she reached down and fingered herself steadily, head tilted back, eyes half-lidded, mouth open, face tightening with intensity — and he watched, and she let him, the woman who'd spent her whole life behind a desk finally letting someone see her.
<video src="img/Caprice/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, catching her breath, and laughed, soft and dry. <<speech "Caprice">> "You know, I've had students try to get my attention for years. I've seen every pick-up line the university has to offer. And you — " <</speech>> She shook her head, amused. <<speech "Caprice">> "You brought back the same book four times." <</speech>>
<<speech "Nathan">> "It worked." <</speech>>
She laughed again, and she stayed, and she didn't understand the warmth — only that for the first time in years, the library wasn't the only place she wanted to be.
<<elseif _s is 2>>
She found herself thinking about him all week — at the desk, shelving returns, scanning books, she kept replaying that night in her head, and it unsettled her, because she'd never once in her life let herself be unsettled by a person. She was Caprice. She watched people; she didn't get caught up in them.
He came to her. That was the thing that undid her — he didn't wait, didn't play games, didn't hover at the desk hoping for an invite. He found her at the library at closing, and when she looked up from the returns, he was leaning against the counter with a takeaway coffee in each hand.
<img src="img/Caprice/Corr1.jpg">
<<speech "Nathan">> "I brought you the one from the coffee shop. Not the library's collection." <</speech>>
She took it, and it was hot, and it was exactly how she liked it — she'd never told him how she liked it. She looked at him across the counter, and her voice came out softer than she meant. <<speech "Caprice">> "You know, I've had people try to figure me out my whole life. I've made a career of being unreadable. And you — you just — read me." <</speech>> She laughed, dry, embarrassed. <<speech "Caprice">> "I'm not used to being the one who's seen." <</speech>>
<<speech "Nathan">> "You don't have to be used to it," <</speech>> he said, easy. <<speech "Nathan">> "You just have to let it happen." <</speech>>
The warmth flooded through her, and she went with him, and at his place she knelt on the grey couch, naked from the waist up, leaning forward — and she took him into her mouth, lips wrapped tightly around the shaft, her black-nailed hand stroking and gripping the base, looking directly at him, eyes open, then closing briefly as she sucked, saliva stretching when she pulled back.
<video src="img/Caprice/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up, and she knelt before him, mouth open, tongue extended — and he came against her tongue, thick and white, dripping into her mouth, and she held the position, eyes fixed on him, then closed her lips around the head and licked the remaining cum while maintaining eye contact.
<video src="img/Caprice/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caprice">> "I've spent my whole life watching everyone from behind this desk," <</speech>> she whispered, still on her knees. <<speech "Caprice">> "I've read people for a living. I've never once let anyone read me. And you — you just — sat in the corner, read your book, and somehow got past every wall I've built." <</speech>>
He pulled her to her feet and held her. <<speech "Nathan">> "You don't have to keep the walls up with me," <</speech>> he said. <<speech "Nathan">> "I'm not going anywhere." <</speech>>
She lay in his arms that night, and she didn't know if she was brave or just tired of being alone — only that she couldn't leave him, and that for the first time in her life, the woman who watched everyone wanted to be seen.
<<elseif _s is 3>>
The library was closing, and Caprice was at her desk, and she'd been lying to herself all week. That was the honest part. She'd told herself it was a fling — she was 24, he was a student, she was the one who watched people, she didn't get caught up. But she'd started planning her day around his visits. She'd caught herself smiling at her desk when he walked in. And the warmth, which had never left her, was humming under her skin like it belonged there.
She looked up from the returns — and he was in the doorway, and the whole room went quiet in her head.
<img src="img/Caprice/Corr2.jpg">
<<speech "Caprice">> "You keep showing up in my head," <</speech>> she said, and her voice came out softer than she meant. <<speech "Nathan">> "I keep showing up here," <</speech>> he said. <<speech "Nathan">> "I like the company." <</speech>>
She stood, and the guarded librarian crossed the room and took his face in her hands, and the words came out clear and certain. <<speech "Caprice">> "I love you, Nathan ❤️." <</speech>> She said it like she'd been holding it in her whole life, which she had, without knowing it. <<speech "Caprice">> "I've never said that to anyone. I've never wanted to. I've spent my whole life watching people from behind a desk, keeping everyone at arm's length with my wit, making sure no one could ever get close — and you sat in the corner and read the same book four times and got past everything. I love you." <</speech>>
He kissed her like he'd been waiting his whole life for those words, and they went back to his place, and he laid her on all fours, naked, long dark hair hanging down — and he gripped her hips and thrust into her from behind, her mouth open, face contorted with intensity as her body rocked forward with each thrust.
<video src="img/Caprice/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He took her again from behind, his hands spreading her cheeks, fingers pressing into the flesh, his cock sliding deep and pulling back repeatedly, her entrance glistening and stretching around him.
<video src="img/Caprice/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, tracing patterns on his chest. <<speech "Caprice">> "I'm still going to work the library," <</speech>> she murmured. <<speech "Nathan">> "I know." <</speech>> <<speech "Caprice">> "I'm still going to be dry and sarcastic and unreadable to everyone else." <</speech>> He kissed the top of her head. <<speech "Nathan">> "I know," <</speech>> he said. <<speech "Nathan">> "And then you'll come home to me, and you'll let me read you." <</speech>>
She smiled at that — a real smile, the one she kept behind the counter. The librarian who'd watched everyone for years had finally let someone watch her back — the student who'd sat in the corner and read the same book four times, and never once tried to take anything from her. And she let herself be seen, completely, for the first time in her life.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The main admin office was a normal morning — the printer humming, phones ringing somewhere in the back, a line of students at the counter. Maya was at her desk, working her way through a stack of forms, humming along to a song stuck in her head. She'd been working here for years and she liked it fine: the hours were good, the people were nice, and she got to go home at five. She was twenty-five, her apartment was small, her life was ordinary — and she was happy that way.
Nathan came in at mid-morning, looking apologetic before he'd even said a word, a crumpled form in his hand. Maya looked up and grinned.
<img src="img/Maya/Normal.jpg">
<<speech "Maya">> "Literature boy. Back again." <</speech>> She leaned on the counter, teasing, the way she did with the regulars. <<speech "Maya">> "Let me guess — you lost the change-of-major form again. I'd scold you, but you brought coffee last time, and I'm weak." <</speech>>
Nathan laughed, easy and warm. <<speech "Nathan">> "Guilty. And I brought you coffee again." <</speech>> He set a cup on the counter. <<speech "Nathan">> "Two sugars, a splash of oat milk. Did I get it right?" <</speech>>
Maya blinked. She'd told him that weeks ago, in passing, and she'd honestly forgotten she'd said it — she forgot half of what she said. <<speech "Maya">> "You remembered." <</speech>>
<<speech "Nathan">> "It's the kind of thing worth remembering." <</speech>> He shrugged, simple. <<speech "Nathan">> "You remembered my name the first time I came in here, back when I was too nervous to say it myself. Least I can do is remember your coffee." <</speech>>
That was the first moment the warmth moved through her. She'd been flirted with before — students flirted with her all the time, and she laughed them off with the easy habit of a woman who'd heard it all. But this wasn't flirting. It was Nathan, who'd been coming to her office for months, who'd never once tried anything, who just kept showing up with his easy smile and his stupid forms and his way of making her feel like the most interesting person in the room. And it hit her — sitting there, coffee in hand — that she'd been looking forward to him all along.
The warmth spread slow and soft, like the sun coming out. She didn't know what it was. She didn't ask. She just felt, for the first time in years, a little less settled, a little more alive.
<<speech "Maya">> "You know," <</speech>> she said, leaning forward, playful, <<speech "Maya">> "I'm five years older than you, literature boy. And I still can't remember where I put my own keys half the time. You sure you know what you're getting into?" <</speech>>
<<speech "Nathan">> "I like what I'm getting into," <</speech>> he said, and he said it so simply, so honestly, that her breath caught.
She laughed it off — she always laughed things off — but she didn't forget it. She thought about it that night, in her quiet apartment, alone like always. She'd told herself she was fine alone. She'd told herself the job was enough. And then Nathan had said that, and the warmth had moved through her, and she'd realized maybe she'd been telling herself stories.
When he asked her out — quietly, at the counter, like he was afraid she'd say no — she said yes before she'd decided to.
His apartment was dim and warm, white furniture, plants in the corners. She'd worn the silver dress she'd bought months ago and never had a reason to wear. He looked at her in it like she was something precious. They talked for an hour, and then he kissed her, slow and deep, and she melted into it, and it felt good, and easy, and right.
She knelt for him right there in the warm lamplight, hair in the ponytail she'd tied before she came, hands raised to him as he reached for her — and she'd never done this with anyone, not like this, and it felt, impossibly, like the most natural thing in the world.
<video src="img/Maya/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Then she rose, and stood before him nude but for a thin cloth at her hips, and he pressed against her from behind, one hand on her stomach, the other sliding between her legs, and she leaned into him, eyes closed, letting him take her apart slowly, gently, like he had all the time in the world.
<video src="img/Maya/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She walked home that night with her head spinning, and she told herself it was nothing — a student, a crush, a fling. She'd been around long enough to know how these things ended. She'd be over it soon.
She wasn't over it for days.
<<elseif _s is 2>>
She avoided him for a week. That was the plan — give it time, let it fade, go back to normal. She was twenty-five. She was the adult here, and she'd been fine her whole life without needing anyone, and she'd be fine now.
But the warmth never faded. It sat under her skin, low and constant, and every time she saw his name on a form she felt it flare, and every time a student walked in with brown hair she looked up hoping it was him — and once she filed a form in the wrong drawer because she'd been thinking about him, and she'd had to go back and fish it out, and she'd laughed at herself, embarrassed, the way she did.
He came to her. That was the thing that undid her — he didn't wait for her to sort herself out. He showed up at the office at the end of the day, after everyone else had gone, a paper bag in his hand.
<img src="img/Maya/Corr1.jpg">
<<speech "Nathan">> "I brought you dinner," <</speech>> he said, setting it on the counter. <<speech "Nathan">> "I figured you'd be working late to avoid me." <</speech>>
She laughed, caught, and it came out softer than she meant. <<speech "Maya">> "You're not supposed to be this good at this, literature boy." <</speech>>
<<speech "Nathan">> "I'm not good at anything," <</speech>> he said, and there was no play in it now, just honesty. <<speech "Nathan">> "I'm just — I'm not going anywhere, Maya. I know I'm younger. I know I'm a student, and you're the one who hands me forms. I know it probably looks like a joke from the outside. But it's not a joke to me." <</speech>>
She looked at him across the counter, and the office lady who'd never once been flustered by a student felt her chest tighten.
<<speech "Maya">> "I've spent my whole life being the sensible one," <</speech>> she said quietly. <<speech "Maya">> "I chose this job because it's calm. I chose my apartment because it's quiet. I've never once let myself want anything loud. And now I've got a twenty-year-old literature student making me feel like I'm missing the whole point of my life." <</speech>> She laughed, shaky. <<speech "Maya">> "That's — that's not like me. I get flustered, I forget things, I'm a mess half the time. This whole thing scares me, Nathan. I don't know what I'm doing." <</speech>>
<<speech "Nathan">> "You don't have to know," <</speech>> he said gently. <<speech "Nathan">> "I don't either. We can just figure it out together." <</speech>>
The warmth flooded through her, and she crossed the room and kissed him, and they ended up on the floor of his apartment — her in the silver dress, bunched up around her waist, on her knees before him, taking him into her mouth, looking up at him, the dress a pool of silver around her thighs.
<video src="img/Maya/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up, and she knelt before the sofa, nude, hair loose, face tilted up — and he stood over her and let go, thick and warm across her tongue, her lips, her cheeks, and she held his gaze, taking it, smiling, swallowing.
<video src="img/Maya/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Maya">> "I keep almost saying something," <</speech>> she whispered afterward, still kneeling. <<speech "Maya">> "And I don't know if I'm ready to know what it is." <</speech>>
He pulled her to her feet and held her. <<speech "Nathan">> "You don't have to be ready," <</speech>> he said. <<speech "Nathan">> "I'm not going anywhere." <</speech>>
She believed him. She fell asleep in his arms that night, and the word she was almost ready to say sat on her tongue like a stone she was afraid to drop.
<<elseif _s is 3>>
The office was closing, and Maya was at her desk, finishing the last form of the day — she'd almost filed it in the wrong drawer again, caught herself, laughed. She'd been doing that a lot lately. She'd been lying to herself all week, too. That was the honest part. She'd told herself it was a fling, told herself she'd get over it, told herself she was the adult and this would fade. But she'd started planning her day around him. She'd caught herself smiling at her phone when his name lit it up. And the warmth, which had never left her, was humming under her skin like it belonged there.
She told herself she was fine. She was twenty-five. She was sensible. She was — she looked up, and Nathan was in the doorway, and the whole room went quiet in her head.
<img src="img/Maya/Corr1.jpg">
<<speech "Maya">> "You keep showing up," <</speech>> she said, and her voice came out softer than she meant. <<speech "Nathan">> "I keep wanting to," <</speech>> he said. <<speech "Nathan">> "Is that okay?" <</speech>>
She stood, and the sensible office lady crossed the room and took his face in her hands, and the words came out clear and certain. <<speech "Maya">> "I love you, Nathan ❤️." <</speech>> She said it like she'd been holding it in her whole life, which she had, without knowing it. <<speech "Maya">> "I've never said that to anyone. I've never wanted to. I've been so careful my whole life — so settled, so sensible — and you made me want to be careless. I love you." <</speech>>
He kissed her like he'd been waiting his whole life for those words, and they went back to his place, the warm bedroom with the white bedding and the wall lamps, and she straddled him on the white upholstered chair, long hair loose and swaying, riding him slow and deep, her hands braced on his shoulders, looking down at him with the smile she kept for no one.
<video src="img/Maya/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her on the white bed and pushed into her, and she watched him through half-lidded eyes, her mouth open, soft and constant — and when he pulled out, thick and white, it leaked from her onto the sheets, and she smiled up at him, bright and real, and pulled him down to her.
<video src="img/Maya/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, tracing patterns on his chest. <<speech "Maya">> "I'm still going to be the office lady," <</speech>> she murmured. <<speech "Nathan">> "I know." <</speech>> <<speech "Maya">> "I'm still going to lose my keys and file things in the wrong drawer and remember people's names wrong." <</speech>> He kissed the top of her head. <<speech "Nathan">> "I know," <</speech>> he said. <<speech "Nathan">> "And you'll still come home to me." <</speech>>
She smiled at that — bright, real. The sensible office lady had finally let herself want something loud, and it was him — the literature boy who'd remembered her coffee, who'd waited, who'd seen her and liked her anyway, mess and all. And she went home with him, and she wasn't over it. Not even close. She was just getting started.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Jade and Jasper already knew each other through Elsa and the wider friend group. They were not particularly close, but they trusted one another. Jade had never treated Havenwood as the only interesting thing about him, and Jasper knew she would say what she meant without turning honesty into cruelty.
They had shared rides, meals, and enough group conversations to understand each other's basic character. Jade believed Jasper followed through when he made a promise. Jasper believed Jade would not gossip about something told in confidence. The trust was ordinary and limited, but real before any essence touched it.
Kali persuaded several friends to try a beginner movement class in a rented studio. Jade arrived in her red crop top, black shorts, and red platform heels before changing for the session.
<img src="img/Jade/Normal.jpg">
After the class, the others left for drinks while Jade remained in the private stretching room to change. She wore a tight pink-and-purple tie-dye sports top with crossed straps digging into her cleavage. Jasper stayed because they planned to walk back toward campus together.
<<speech "Jade">> "I may have chosen the wrong size." <</speech>> She tried to adjust the straps. <<speech "Jade">> "Could you help me loosen them?" <</speech>>
<<speech "Jasper">> "Do you want help?" <</speech>>
Jade nodded. Asking him did not feel dangerous. They trusted each other, and neither had previously tried to turn that trust into flirtation.
Jasper loosened the treated cord around his wrist. Thornfield's essence entered the warm studio air: chamomile, worn leather, and pavement after summer rain. He had brought it deliberately. Jade's quiet, dependable inclusion had mattered to him more than she knew, and he wanted the comfortable trust between them to become something she would never withdraw.
The scent gathered gradually while his hands adjusted the top. Jade relaxed beneath his touch and interpreted the closeness as exercise endorphins and attraction finally becoming obvious.
Jasper's palms settled over her full breasts. He gripped and kneaded the soft flesh through the thin fabric, thumbs brushing the underside while Jade arched slightly. Her head tipped back, dark hair falling over one shoulder, large silver hoops catching the light as her lips parted.
<video src="img/Jade/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jade">> "That stopped being help with the straps." <</speech>>
Jasper released her immediately.
<<speech "Jasper">> "Do you want it to stop?" <</speech>>
Jade looked at him, breathing faster.
<<speech "Jade">> "Not because I don't trust you." <</speech>> She pulled the top back into place. <<speech "Jade">> "I need to decide what I am doing before Kali comes back looking for us." <</speech>>
Jasper walked her home and left without pressing for an answer. The restraint strengthened everything the essence had already attached to him.
In her bright living room, Jade changed into a vivid pink bra and matching sheer panties. Her long hair was divided into two thick braids. She propped a pink phone near her hip and opened a message to Jasper.
Jade reclined on the couch, spread her legs, and used her red-nailed fingers to open her smooth outer lips and stroke her clit and entrance. Her hips moved in small circles. She looked down at herself, then toward the phone, mouth open and tongue briefly visible as wetness shone over her fingers.
<video src="img/Jade/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She sent the recording after a moment of hesitation.
Jade told herself the class had changed the mood between them and that Jasper's respectful departure had made her want to call him back. She did not associate the decision with anything he had done to her trust.
<<elseif _s is 2>>
<img src="img/Jade/Corr1.jpg">
Jade invited Jasper to her apartment for an evening that was clearly personal. She had added bright red streaks to her long dark hair after Gina encouraged her to try something less familiar. Under a loose layer, she wore a sheer red strappy top and leopard-print thong.
They ate together first. Without the friend group around them, the conversation remained easy rather than awkward. Jade did not feel she had invited a near-stranger into her home; she felt she had finally made private space for someone she already trusted in public.
Jasper brought a small scented candle treated with the same essence. Jade recognized the chamomile and warm-rain smell only as something she now associated with him.
<<speech "Jade">> "I watched the recording again before I sent it." <</speech>>
<<speech "Jasper">> "Did you want to take it back?" <</speech>>
<<speech "Jade">> "No. I wanted to be certain I was sending it because I meant it." <</speech>>
<<speech "Jasper">> "And now?" <</speech>>
Jade moved closer as the scent softened the last of her uncertainty.
<<speech "Jade">> "Now I want you here." <</speech>>
She moved onto all fours with her rounded ass raised behind her. The red straps shifted across her bare breasts as she leaned forward, wrapped one hand around Jasper's cock, and took him into her mouth. Her cheeks hollowed; saliva shone on her lips and chin; her eyes lifted between deep, twisting strokes.
<video src="img/Jade/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Against a plain gray wall, Jade knelt with silver hoop earrings and small piercings catching the light. She tilted her head back, mouth open and tongue extended while thick white cum coated her lips, chin, neck, and bare chest. She leaned forward again, wrapped her lips around Jasper, and sucked him clean while fluid continued running from the corners of her mouth.
<video src="img/Jade/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper cleaned her face gently and stayed when the sexual urgency had passed. They returned to the living room, spoke until the candle burned low, and made plans to see one another without routing the invitation through Elsa.
The evening confirmed what Jade already wanted to believe: their trust had become intimacy without ceasing to be trust. She did not feel tricked or altered. Jasper simply felt like someone she had known closely for much longer than she had.
<<elseif _s is 3>>
<img src="img/Jade/Corr3.jpg">
Jade invited Jasper into her bedroom without needing another recording or carefully defined evening. Silver-gray satin sheets covered the bed. Her dark hair still carried the vivid red streaks, and a thin gold necklace rested at her throat.
<<speech "Jasper">> "I don't want to exist only in private moments you reconsider afterward." <</speech>>
<<speech "Jade">> "You don't." <</speech>> She took his hand. <<speech "Jade">> "I trust you in the rest of my life too." <</speech>>
She had already begun including him without thinking about it: sending him ordinary messages, saving him a place when the group met, and asking whether he wanted to come before assuming the answer. Jasper did not want those gestures because Jade was useful. He wanted the quiet permanence they represented.
The essence deepened her answer into complete certainty. Jade experienced no break or warning—only the relief of saying aloud what now felt settled.
She lay fully nude on the satin sheets with one arm behind her head, legs raised and open. Jasper drove into her in deep strokes while her other hand rested low on her stomach and brushed her clit. Her navel piercing glinted; her mouth stayed open; short needy sounds escaped as she urged him deeper and tilted her hips to meet him.
<video src="img/Jade/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jade then mounted him in reverse, back arched high with her rounded ass filling the view. Her oiled skin shone while she rolled her hips and rose and sank in steady circles. She leaned forward until her red-streaked hair fell around them, smiling softly as one hand cupped Jasper's face and she continued the slow, deep grind.
<video src="img/Jade/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jade remained practical, ambitious, and close to Elsa, Kali, and Gina. Jasper did not turn her into Havenwood's organizer or ask her to manage his life.
He became part of the circle she considered permanent. She visited Havenwood because he lived there, included him in ordinary plans because she wanted him present, and trusted his place in her life without revisiting the decision.
The mutual trust that had existed before the first scene was real. Thornfield's essence did not invent it; it made certain that it could only deepen.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Gina's loft was already filling with music when Jade arrived in her red crop top, black denim shorts, and red platform heels. She had agreed to come early because Kali wanted a second opinion on outfits and Jade was curious enough to see what Gina had planned.
<img src="img/Jade/Normal.jpg">
Nathan was there ahead of Elsa and Aria, waiting near the wooden staircase while Gina changed the music for the third time. Jade knew him through Elsa and trusted him easily. Part of that trust came from Nathan's relationship with Aria. He had never treated ordinary friendliness as an invitation, and Jade felt safe asking his opinion without expecting the moment to become something else.
They had spoken enough at previous gatherings for Jade to know that Nathan listened without turning every disagreement into a contest. Nathan knew Jade was thoughtful and dependable, but he did not reduce her to the practical friend who made reservations and remembered times. Their friendship was comfortable precisely because neither had demanded anything from it.
Kali had persuaded Jade to try a tight black fishnet top for the party. In a quiet side room, Jade looked down at the mesh and then toward Nathan.
<<speech "Jade">> "Is this too much? I want an honest answer, not whatever Gina would say." <</speech>>
<<speech "Nathan">> "You look good. If you feel comfortable in it, wear it." <</speech>>
<<speech "Jade">> "That is exactly why I asked you." <</speech>> She adjusted the neckline. <<speech "Jade">> "I know you won't make it strange. You have Aria, and you actually respect that." <</speech>>
<<speech "Nathan">> "I would never want to hurt her." <</speech>>
The love spirit answered the sincerity in his voice. Warmth opened inside Jade, turning the safety she associated with Nathan into immediate attraction. She did not think he had caused anything. She only felt unexpectedly aware of his hands, his attention, and the privacy of the room.
Jade drew the fishnet beneath her breasts. Nathan hesitated until she took his wrists and placed his hands against her.
<<speech "Jade">> "Just tell me whether it looks right." <</speech>>
His hands cupped and squeezed her full breasts, thumbs brushing her dark nipples while the mesh clung to her sides. Jade tilted her head back, lips parted, breathing through the touch as the spirit's warmth made the boundary feel playful rather than dangerous.
<video src="img/Jade/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When music and voices approached, Jade covered herself. She and Nathan returned to the party without discussing what had happened. Aria arrived soon afterward and greeted both of them warmly. Jade felt a stab of guilt, but the spirit folded it into the thought that nothing irreversible had happened. She had asked a trusted friend for help and allowed the moment to become too intimate. It could still end there.
Later, they crossed paths on the wooden staircase away from the main room. Jade had changed again, now topless with a silver statement necklace, white thigh-high stockings, and black lace panties. One discarded heel rested on a lower step.
<<speech "Jade">> "I should stop before Aria arrives." <</speech>>
<<speech "Nathan">> "We can stop." <</speech>>
The answer was gentle and immediate. The spirit made his restraint feel like another reason to trust him.
Jade sat on the step, opened her legs, and pulled the black lace aside. Her fingers rubbed and parted her slightly swollen pussy while she looked down at herself and then toward Nathan. Soft moans escaped as she worked her clit and entrance beneath his gaze.
<video src="img/Jade/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She stopped when the sound of the party returned to the stairwell. Nathan helped her stand and waited while she dressed, neither of them pretending the second encounter had been accidental.
Jade told herself the outfit, the privacy, and the excitement of doing something forbidden had carried her too far. She still trusted Nathan, and that trust made the guilt more complicated rather than less. Their friendship remained, but it now held an attraction she could no longer dismiss.
<<elseif _s is 2>>
<img src="img/Jade/Corr1.jpg">
Jade invited Nathan to dinner at her apartment because she wanted to speak without music or friends nearby. She wore a tight white crop top and short maroon skirt while finishing food in the modern kitchen.
For the first part of the evening they ate, discussed Elsa and the party, and behaved like the friends they had been before the fishnet top. Jade found the normality comforting. It also proved that wanting Nathan had not erased everything she valued about speaking with him.
When the dishes were set aside, she remained near the kitchen counter instead of sitting across from him.
<<speech "Jade">> "I keep returning to the same problem." <</speech>> She set down the plate. <<speech "Jade">> "I trust you partly because you love Aria. Acting on that trust could hurt the reason it exists." <</speech>>
<<speech "Nathan">> "Caring about you does not make what I feel for her disappear." <</speech>>
<<speech "Jade">> "That does not automatically make it fair." <</speech>>
<<speech "Nathan">> "No. But it means you are not replacing her." <</speech>>
The love spirit moved through the reassurance. Jade experienced it as relief, not influence. The possibility that affection could expand rather than destroy settled into her with the force of something she had already believed.
She crossed the kitchen, sank to her knees on the tiled floor, and looked up at Nathan. Still wearing the white top and maroon skirt, Jade wrapped one hand around the base of his cock and took him into her mouth. Her tongue worked the underside; cheeks hollowed; saliva shone on her lips and chin while her dark eyes remained lifted.
<video src="img/Jade/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
On the gray couch, Jade removed her top and pressed her full breasts together in both hands. Nathan stroked himself over her, covering the tops of her breasts in thick white cum. Jade kept squeezing, rubbing the slick mess over her skin as her mouth opened and her head tipped back.
<video src="img/Jade/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, Nathan brought her a towel, but Jade did not wipe herself immediately. The visible mark across her chest made the choice feel real in a way conversation had not.
She still believed secrecy was unfair to Aria. What had changed was the conclusion: she no longer believed the only honest outcome was giving Nathan up. The spirit made a larger relationship seem difficult but possible, and Jade began thinking about honesty as a path forward rather than a reason to retreat.
<<elseif _s is 3>>
<img src="img/Jade/Corr3.jpg">
Jade asked Nathan to come over without preparing dinner or rehearsing an argument. She wore a short blue plaid skirt and nothing beneath her top.
<<speech "Jade">> "I don't want Aria pushed aside. I don't want to become something you hide from her." <</speech>>
<<speech "Nathan">> "I don't want anyone pushed out." <</speech>>
<<speech "Jade">> "Then this has to become more than private promises." <</speech>>
The spirit deepened every word into certainty. Jade felt Nathan's love as something spacious enough to include rather than replace, and she stopped imagining that the only possible relationship was one built by taking him from someone else.
On the gray couch, Jade straddled Nathan with the blue plaid skirt pushed around her waist. Her bare breasts bounced as she rode, first bracing her hands against the cushions and then lifting them to cup and squeeze herself. Her brows furrowed; her mouth stayed open while she rolled her hips in a steady rhythm.
<video src="img/Jade/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
They moved to the white couch. Jade lay fully nude with her long black hair spread across the cushion, one socked foot raised with her legs held open. Nathan finished inside her. Thick white cum leaked across her folds and dripped while Jade's red-nailed hand rested on her mound, fingers spreading herself open.
<video src="img/Jade/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jade remained practical, loyal to her friends, and unwilling to treat Aria as collateral damage. Under the Love spirit, that concern no longer led her away from Nathan. It led her toward the future he promised.
Nathan held her against the couch and spoke with complete sincerity.
<<speech "Nathan">> "No one has to be replaced. In the end, everyone will be together." <</speech>>
Jade believed him.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Nathan knew Kali through Elsa. They had traded jokes across group tables, crossed paths during coffee runs, and watched Elsa navigate the fallout between Nathan and Josh from opposite sides of the same conversation. Kali thought of Nathan as Elsa's quiet, dependable friend—the one who listened instead of demanding that she choose sides. Nathan thought of Kali as the friend who noticed discomfort early and eased it without making anyone feel examined. They were friendly, but neither had ever tested what existed outside the group.
The evening had begun as six people, two pizzas, and a borrowed apartment with more windows than furniture. By eleven, the pizzas were gone, four people had followed a new invitation across town, and Nathan was helping Kali search the hotel-style bedroom for an earring she was increasingly certain she had never worn.
<img src="img/Kali/Normal.jpg">
<<speech "Kali">> "This is why I don't organize things." <</speech>> She checked beneath a pillow and laughed. <<speech "Kali">> "I arrive, I improve the atmosphere, and I leave before anyone asks me where the spare towels are." <</speech>>
<<speech "Nathan">> "You did improve it." <</speech>>
<<speech "Kali">> "Obviously." <</speech>> She straightened and pointed at him. <<speech "Kali">> "You also stayed after everyone louder left. That means either you like me or you feel responsible for the security deposit." <</speech>>
<<speech "Nathan">> "Can't it be both?" <</speech>>
Kali's laugh came easily. That was what Nathan liked about her. She had steered two awkward introductions into a real conversation, noticed when one guest wanted to leave, and made the whole shifting group feel natural without once pretending it had been planned.
A drink had been spilled across her neon outfit earlier. She had changed into shiny black boyshorts and striped thigh-high socks, keeping the black choker, then pulled an oversized shirt over everything while it dried. The arrangement looked ridiculous and comfortable, which Kali seemed to consider ideal.
She found the missing earring inside her handbag.
<<speech "Kali">> "Mystery solved. My instincts remain flawless." <</speech>>
<<speech "Nathan">> "Your instincts said it was under the bed." <</speech>>
<<speech "Kali">> "My instincts contain multitudes." <</speech>>
They carried the abandoned glasses into the kitchen and returned to the bedroom because the living room lights had been left on a timer. Their conversation stayed ordinary—mutual friends, a professor Nathan avoided, the stranger Kali had invited because he looked stranded by the elevator. She watched Nathan while he talked, not hunting for damage, simply interested in the shifts of his expression.
<<speech "Kali">> "You know what throws me off about you?" <</speech>>
<<speech "Nathan">> "I'm sure you'll tell me." <</speech>>
<<speech "Kali">> "You listen all the way to the end. Most people start preparing their answer halfway through." <</speech>> She sat on the edge of the bed. <<speech "Kali">> "It makes you harder to predict." <</speech>>
<<speech "Nathan">> "Maybe you're trying too hard." <</speech>>
<<speech "Kali">> "Maybe I like trying." <</speech>>
The eye contact lasted one breath longer than either intended.
Warmth stirred behind Nathan's ribs. The Love spirit pressed outward—not a voice, not an order, but an immense emotional current searching for the affection already present between them. Kali's teasing expression softened as the warmth reached her.
She felt noticed with impossible clarity. Nathan's attention seemed to hold every version of her at once: the friend who interrupted tension, the woman who enjoyed an audience, the person making a private choice now. Her own interest surged to meet it until the room felt organized around the space between them.
Kali pulled the oversized shirt over her head.
She did it without trance or hesitation. Bare breasts and pierced nipples came into view above the black boyshorts. She knelt on the white bed, ran both hands over herself, and turned enough to show the rose-and-script tattoo across her back.
<<speech "Kali">> "Still listening all the way to the end?" <</speech>>
Nathan's throat tightened.
<<speech "Nathan">> "Yes." <</speech>>
<video src="img/Kali/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Kali watched his reactions as she cupped her breasts, touched the piercings, and slowly displayed her body. Every flicker of desire in his face returned to her as reassurance. It felt like chemistry, sudden but not alien—a truth her instincts had reached before her caution.
Nathan sat beside her, close enough for their knees to touch.
<<speech "Nathan">> "Kali, we can slow down." <</speech>>
<<speech "Kali">> "We can." <</speech>> She kissed him once, testing. The heat moved through both of them. <<speech "Kali">> "I don't want to." <</speech>>
She took his hand and led him into the bright living room. The teal couch sat beneath patterned cushions. Kali found the yellow heels she had kicked beneath it earlier and fastened them around her ankles.
Nathan blinked.
<<speech "Nathan">> "Why the shoes?" <</speech>>
<<speech "Kali">> "Because if I'm going to make a surprising decision, one part of it should be funny on purpose." <</speech>>
She stripped off the boyshorts and sat fully nude on the couch, legs opening toward him. The script tattoos on her inner thighs framed the movement of her hands.
<video src="img/Kali/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Kali spread herself and slid her fingers inside while Nathan watched from the floor in front of her. She kept talking between soft sounds—telling him when to look, asking what expression he was making, laughing once when he admitted he had no idea.
The Love current deepened every time he answered honestly. Kali came with his name on her lips and her eyes fixed on his, then sat breathing hard with one yellow heel still planted on the cushion.
<<speech "Kali">> "Well." <</speech>> She smiled, flushed and unembarrassed. <<speech "Kali">> "I read that wrong." <</speech>>
<<speech "Nathan">> "What part?" <</speech>>
<<speech "Kali">> "I thought I was teasing you." <</speech>> Her gaze stayed on him. <<speech "Kali">> "Turns out I was making a decision." <</speech>>
She did not call it magic. She called it attraction, overdue and stronger than expected. Nathan wanted to believe the same.
Before they left the borrowed apartment, Kali put the room back together around them. She found the owner of the lost jacket, arranged a ride for someone across town, and added Nathan to the next invitation without asking whether he would come.
She already knew he would.
<<elseif _s is 2>>
Kali invited Nathan over on a quiet afternoon because she wanted an answer that did not depend on borrowed rooms, other people's music, or a night that had slipped off course.
She opened the door in a mauve-pink ribbed dress with a plunging neckline and matching satin bra beneath it, large hoops framing her face. One hand rested behind her head as she watched Nathan recognize that this was no group visit.
<img src="img/Kali/Corr1.jpg">
The dress made the invitation unmistakably personal. After letting him look, Kali changed into a fitted gray ribbed top and black thong beside the gray-tufted bed—something simpler for the deliberate test she wanted to make.
<<speech "Kali">> "One controlled test." <</speech>> She faced him. <<speech "Kali">> "You, me, daylight. If this still feels ridiculous, we blame the shoes." <</speech>>
<<speech "Nathan">> "And if it doesn't?" <</speech>>
<<speech "Kali">> "Then I was right to invite you." <</speech>>
She kissed him before he could answer. The warmth between them returned immediately, deeper because both had anticipated it. Kali felt Nathan's affection as certainty in her own chest. She could read his nerves, restraint, and desire, and every signal made her want to reward the sincerity behind it.
She pushed him back onto the bed and lay on her stomach beside him, blonde hair falling forward. The gray top remained tight across her body; the black thong exposed the floral tattoo along her lower back and hip.
<<speech "Kali">> "I want to see how long you can keep pretending you're calm." <</speech>>
She took him into her mouth.
<video src="img/Kali/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Kali worked with steady focus, looking up whenever Nathan's breath changed. His pleasure became a conversation she understood without words. She pulled back to lick the head, smiled at his loss of composure, then took him deep again.
Nathan touched her hair gently.
<<speech "Nathan">> "You don't have to prove anything." <</speech>>
Kali lifted her mouth long enough to answer.
<<speech "Kali">> "I'm not proving it. I'm enjoying being right." <</speech>>
Later she drew him into the bright living room, stripped completely, and knelt on the floor beside the gray sectional. She tilted her face up as he finished across her extended tongue, lips, and chin.
<video src="img/Kali/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She licked her lips, smiled, and pulled him down beside her.
The ordinary explanation came easily: the first night had revealed an attraction; repeating it deliberately made the attraction real. Kali did not notice how often, after that, every group conversation began with locating Nathan's mood. If he was engaged, the evening felt right. If he withdrew, she redirected the room until he returned.
It felt less like surrender than finally having a signal she never misread.
<<elseif _s is 3>>
Kali's bedroom had become one point inside a larger pattern.
She still moved easily through groups, noticed who needed introducing, and interrupted tension before it hardened. But every path she opened now bent toward Nathan. She invited the lonely student because Nathan would listen. She pulled two arguing friends back together because Nathan hated watching people become enemies. She began measuring good nights by whether he stood at their center.
Kali told him this while standing beside the gray-tufted bed in a burgundy strapless corset set with sheer panels and a matching thong. Her navel piercing and tattoos remained visible beneath the structured lines, and she smiled broadly while holding the sides of the lingerie.
<img src="img/Kali/Corr2.jpg">
The outfit was not random progression. Kali had chosen it because Nathan now read every intentional detail as communication, and she wanted him to understand that she had dressed for him before she removed it. She unzipped the corset and let the burgundy pieces fall beside the bed.
<<speech "Kali">> "You change the room without trying." <</speech>>
<<speech "Nathan">> "I think that's you." <</speech>>
<<speech "Kali">> "I connect it." <</speech>> She climbed onto the bed and looked back over her shoulder. <<speech "Kali">> "You give me somewhere to connect it to." <</speech>>
Nathan ran a hand along the leafy tattoo across her back. The Love spirit rose between them, full and radiant. Kali pushed back toward him before he entered her, body already anticipating the attachment she had accepted as her clearest truth.
<video src="img/Kali/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<img src="img/Kali/Corr3.jpg">
He took her from behind as she remained on all fours, blonde hair hanging forward, the bold “Roses” script visible across her ass. Kali looked back repeatedly, reading every movement of his face and answering with her hips.
<<speech "Kali">> "Don't look away." <</speech>>
Nathan did not. Their attention locked, and the last distance between ordinary affection and compulsive devotion collapsed inside her.
Kali came hard, hands twisting in the sheets. When Nathan eased her down, she pulled him with her onto the white rug instead of letting the moment end.
She lay on her back with one leg raised, pierced breasts moving with each breath, the inner-thigh script visible as he entered her again.
<video src="img/Kali/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "You don't have to build everything around me." <</speech>> His words were sincere. Some part of him needed to say them.
Kali touched his face.
<<speech "Kali">> "I know." <</speech>> She smiled as her body moved beneath him. <<speech "Kali">> "I want everyone I care about to understand what I see when I look at you." <</speech>>
That was how the Love spirit won her: not by making her quieter, simpler, or less generous, but by giving all her generosity one destination.
Afterward, Kali's phone lit with messages. One friend needed a place to go; another needed somebody patient to talk to; a third had invited people who did not know each other yet.
Kali answered each one.
Then she added Nathan.
<</if>>
</div>
<hr>
<div style="text-align:center;">
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
<p style="color:#ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
<p style="color:#00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Jasper and Gina knew each other through Elsa, but mostly as familiar faces at the edges of the same circle. Gina thought of him as the quiet Havenwood resident who appeared, listened, and left before a room became interesting. Jasper knew Gina as Elsa's impulsive social connector: the woman who could enter knowing one person and leave after introducing ten. They had traded greetings before, never a real private conversation.
<<speech "Gina">> "Well, hey there. I feel like I've seen you around, but never at the good parties." <</speech>>
<img src="img/Gina/Normal.jpg">
Gina leaned against the campus bar in her floral off-shoulder crop top and short black skirt, long dark hair catching the neon light. She had not organized the night. She had arrived, recognized the bartender from a coffee shift, invited two women waiting alone into her booth, and introduced a nervous student to somebody who shared his music taste. The room had begun connecting around her.
<<speech "Jasper">> "I'm more of a quiet-storm kind of guy. Jasper." <</speech>>
<<speech "Gina">> "I know. Elsa's mentioned you. Havenwood, calm voice, disappears before last call." <</speech>>
<<speech "Jasper">> "And you're Gina. You make last call move somewhere else." <</speech>>
Her smile widened. Jasper had understood the difference between planning a night and making one expand.
He deliberately raised his wrist. Thornfield's essence bloomed between them: sandalwood and chamomile over a warm undertone like bread just pulled from an oven. It did not smother the bar's energy. It made Jasper feel like the most reliable point inside it.
Gina's nose twitched.
<<speech "Gina">> "Okay, what is that? It's better than every cheap cologne in here combined." <</speech>>
<<speech "Jasper">> "Something a friend makes. Helps people focus." <</speech>>
<<speech "Gina">> "On what?" <</speech>>
<<speech "Jasper">> "Whatever matters most." <</speech>>
The answer stayed with her. Gina still heard the music and noticed every arrival, but her attention returned to Jasper after each interruption. She introduced him to the bartender, drew him into a quick conversation with two acquaintances, then came back to stand close enough for another breath of chamomile and sandalwood.
Jasper watched how she worked. She did not dominate people. She found the connection they had missed and opened it. He wanted that instinct to trust him—to treat Havenwood and Jasper as the point where all those loose social threads belonged.
<<speech "Jasper">> "You know what you're good at?" <</speech>>
<<speech "Gina">> "Several things. Be specific." <</speech>>
<<speech "Jasper">> "You make people feel expected even when you invited them thirty seconds ago." <</speech>>
The praise landed more deeply under the essence than ordinary flirting.
<<speech "Gina">> "Most people just call me reckless." <</speech>>
<<speech "Jasper">> "They're watching the movement. I'm watching what you build between people." <</speech>>
Gina studied him, the bar slowly losing importance around the steadiness of his gaze.
<<speech "Jasper">> "Let's go somewhere we can hear each other." <</speech>>
<<speech "Gina">> "My place is closer." <</speech>> Her hand found his. <<speech "Gina">> "And I have something better than this skirt." <</speech>>
Her apartment was vivid: colorful art, mismatched furniture, and a purple wall behind a gray leather couch. Gina disappeared into the bedroom and returned in a sparkling red heart-detail bra, red lace thong with garter straps, black sheer stockings, and platform heels.
She turned onto all fours on the couch, arched her back, and looked over one shoulder. Jasper placed a hand on her ass, spread one cheek, and worked his fingers between her legs. Gina shifted eagerly toward the touch. Then she turned, reclining in the same red set with a broad smile as she played with the bra straps.
<video src="img/Gina/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Gina">> "What do you think? Good enough to make the quiet storm stay?" <</speech>>
<<speech "Jasper">> "It's a start. Show me what you want without looking at anyone else." <</speech>>
Gina sank back into the cushions. She pushed the red bra aside, exposing her breasts, spread her stockinged legs, and pulled the lace away from her wet pussy. Two fingers slid inside while her free hand rose to her mouth.
<video src="img/Gina/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She worked herself in slow, deliberate strokes, hips rolling against her hand. Wetness shone across her fingers and folds. Gina sucked her fingers, returned them between her thighs, and kept her dark eyes on Jasper through every moan.
The essence made his approval feel richer than the attention of the whole bar. When she came, his name broke from her in a sharp cry. She stayed reclined afterward, red garters framing her legs, smiling as though she had found a new kind of thrill rather than escaped the old one.
<<speech "Gina">> "Okay." <</speech>> She breathed out a laugh. <<speech "Gina">> "Quiet can be good when you're the one watching." <</speech>>
Jasper left her with the ordinary explanation that the chemistry had been waiting beneath casual acquaintance. Gina believed she had finally looked closely enough to notice it.
<<elseif _s is 2>>
Gina returned to Havenwood because the first night had made Jasper feel less like Elsa's quiet acquaintance and more like someone she wanted inside her own momentum.
She entered a bright side room with a white sofa and colorful art wearing a black waffle-knit crop top, maroon lace panties, one fingerless glove, and the layered bow-and-heart necklace at her chest. The castle tattoo on her hip showed above the lace.
<img src="img/Gina/Corr1.jpg">
<<speech "Gina">> "I hope this isn't too quiet for you." <</speech>>
<<speech "Jasper">> "You brought enough energy for both of us." <</speech>>
The sandalwood-and-chamomile essence was stronger here. Gina crossed to him without losing her smile, breathing the familiar warmth until Havenwood seemed to fit around her as naturally as one of the rooms she transformed.
She had brought a vivid pink fishnet bodysuit from a dancer friend. Gina changed into it in the adjoining bright room; gold hoops and stacked bracelets moved as she dropped onto all fours near a vase of yellow tulips.
<<speech "Gina">> "You said trust should be something I show." <</speech>>
<<speech "Jasper">> "Show me you know exactly what I want." <</speech>>
Gina leaned forward, wrapped one manicured hand around him, and took him into her mouth. The pink fishnet stretched over her arms and torso while her lips worked with steady focus.
<video src="img/Gina/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper guided rather than forced, one hand controlling the rhythm while Gina looked up between strokes. Saliva glistened across her fingers. The essence turned each change in his breathing into confirmation that she had read him correctly.
<<speech "Jasper">> "Good. Keep going. Let Havenwood be the place you bring all that energy back to." <</speech>>
He moved her onto her back on the patterned rug. Gina opened her mouth and extended her tongue as Jasper stroked himself above her. Thick ropes of cum landed across her cheeks, lips, and chin. She kept her eyes half-lidded, smiled through the mess, and caught the last drops with her tongue.
<video src="img/Gina/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper left his release visible across her face while Gina licked what reached her lips.
<<speech "Gina">> "You like leaving proof." <</speech>>
<<speech "Jasper">> "I like knowing you'll remember where you chose to come back." <</speech>>
Gina rested against the rug beneath him, the warm essence linking pleasure, trust, Jasper, and Havenwood into one increasingly stable answer.
<<elseif _s is 3>>
Gina entered Havenwood without waiting for a group invitation. By then Jasper was no longer simply a man she knew through Elsa. He was the person she trusted to give all her restless social movement a permanent center.
She paused in the light kitchen wearing a red lace bra, matching thong and garter belt, silver heart pendant at her throat and tattoos visible across both arms.
<img src="img/Gina/Corr2.jpg">
<<speech "Gina">> "I tried the usual places first." <</speech>> She smiled, but her eyes stayed fixed on him. <<speech "Gina">> "Every room kept feeling like somewhere I should bring you—or someone I should bring back here." <</speech>>
The scent reached her from the hall: sandalwood, chamomile, and warm bread. Gina followed it into the bright bedroom, where she exchanged the red lace for a black cage-style lingerie set whose straps crossed her back and hips.
She climbed onto all fours on the bed. Her long dark hair fell down her back; the circular mandala tattoo on her left shoulder blade remained visible as she looked over her shoulder.
<<speech "Gina">> "Tell me where you want me." <</speech>>
Jasper gripped her hips and entered from behind.
<video src="img/Gina/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Gina stayed on all fours in the black cage lingerie, arched and pushing back into deep doggy-style thrusts. Her mouth opened in louder cries while she kept looking over her shoulder. Jasper's hands controlled her hips, and the essence made that control feel like the final proof of trust she had been seeking.
<<speech "Jasper">> "Everywhere you go, you find people." <</speech>>
<<speech "Gina">> "And now I know where to bring them." <</speech>>
He moved her into the living room and removed the black straps. Gina lay completely nude on the gray quilted couch, legs spread, one knee drawn up, dark hair fanned across the cushions.
Jasper entered her again. She remained on her back while he thrust, one hand resting on her lower stomach and the other near her breast.
<video src="img/Gina/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her mouth stayed open through the deep strokes. Thick white cum coated her dark pubic hair and dripped from her pussy as Jasper pulled free and finished across her.
Gina looked down at the mess, then back at him with a satisfied smile.
<<speech "Gina">> "This is where I come back." <</speech>>
<<speech "Jasper">> "And you never come back alone." <</speech>>
The promise Gina accepted was simple: Jasper became her fixed point, Havenwood the place her connections returned to, and trust the feeling that made belonging there seem like her own best choice. She remained lively, impulsive, and socially fearless. Now every new introduction widened Jasper's family.
<</if>>
</div>
<hr>
<div style="text-align:center;">
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
<p style="color:#ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
<p style="color:#00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Nathan knew Gina through Elsa's wider circle. They had shared coffee-shop drop-ins, crowded group messages, and nights when Gina appeared beside Elsa with a new destination before anyone had finished discussing the old one. Nathan thought of her as the friend who made strangers feel included without turning kindness into a performance. Gina knew Nathan as Elsa's steady, thoughtful friend—the quiet former center of Josh's life who listened longer than most people expected. They liked one another, but they had never spent meaningful time alone.
Nathan received Gina's invitation at 7:18.
**A girl I know from coffee has a friend with a place in the hills. Come. Bring nothing. Someone else already has everything.**
That was the full plan.
When Nathan arrived, the bright modern room already felt like a party despite containing only nine people. Gina had not booked the house, chosen the music, bought the drinks, or arranged the food. She simply knew the woman whose roommate had the key, recognized someone on the balcony from a dance class, invited two strangers up because they had made her laugh in the driveway, and introduced everybody as though the connections had always existed.
<img src="img/Gina/Normal.jpg">
<<speech "Gina">> "Nathan! Good, you came." <</speech>> She caught his hand and pulled him into a loose circle near the windows. <<speech "Gina">> "This is Mara, who knows the best twenty-four-hour bakery; Jo, who can fix literally any phone except her own; and Teo, who claims he can teach us salsa in a room this small." <</speech>>
<<speech "Nathan">> "Do you know any of them from before tonight?" <</speech>>
Gina considered.
<<speech "Gina">> "Define know." <</speech>>
She was not managing the room. She transformed it by moving through it. A silent corner became a conversation because Gina remembered that two people liked the same terrible band. An empty glass became a reason to introduce its owner to the person mixing drinks. When the speaker failed, Gina called someone who knew someone in the next building; a replacement appeared ten minutes later with three more guests attached.
Nathan watched without mistaking the energy for a mask. Gina enjoyed this. People interested her. Possibility interested her. The night expanded because she kept opening doors.
She returned to him whenever the room changed.
<<speech "Gina">> "You okay?" <</speech>>
<<speech "Nathan">> "Yeah. Just impressed." <</speech>>
<<speech "Gina">> "By Teo? He has no idea how to salsa." <</speech>>
<<speech "Nathan">> "By you. You make everybody feel like they arrived with somebody." <</speech>>
Gina's expression softened, not with hidden sadness but with genuine pleasure at being understood correctly.
<<speech "Gina">> "That's the point." <</speech>> She bumped her shoulder against his. <<speech "Gina">> "Nobody should waste a good night waiting to be included." <</speech>>
The gathering scattered the way nights around Gina often did: not through a schedule, but because somebody heard about dancing downtown and momentum carried most of the room toward the cars. Gina could have gone. Instead she stood by the windows beside Nathan while headlights disappeared down the hill.
<<speech "Nathan">> "Your party left without you." <</speech>>
<<speech "Gina">> "Not my party." <</speech>> She smiled. <<speech "Gina">> "And they'll produce a new one by the time they park." <</speech>>
The quiet between them was not a correction to the noise. It was simply another kind of moment.
Gina took Nathan's hand and turned once beneath it, a playful remnant of the dance lesson that had failed earlier. He laughed and drew her back. They ended close, her dark hair falling over one shoulder, the rose tattoo on her upper arm visible beneath the floral top.
Their eyes met.
Warmth gathered behind Nathan's ribs. The Love spirit moved through the affection already present: his appreciation for her generosity, her pleasure in being seen, the easy attraction both had treated as part of the night's atmosphere.
The warmth deepened until Gina felt every point of contact with impossible significance.
She did not become quiet. She inhaled sharply, studied Nathan's face, and made a choice.
<<speech "Gina">> "Come with me." <</speech>>
She led him into the adjoining private room and slipped out of the floral top and black skirt. Black bra, matching thong, and a thin choker remained. She had worn them because the evening might become anything and she liked being prepared for the fun version.
Gina leaned in first.
<video src="img/Gina/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Their kisses were long and mutual. Gina's hands stayed on his chest and in his hair as her bra straps eased down her arms. She guided his mouth to her exposed breasts, breath catching when the spirit's warmth answered every touch.
<<speech "Gina">> "Okay." <</speech>> She laughed softly against his mouth. <<speech "Gina">> "That was not in the original invitation." <</speech>>
<<speech "Nathan">> "There wasn't much of an original invitation." <</speech>>
<<speech "Gina">> "Exactly. Look how well that worked." <</speech>>
They returned to the light-colored couch. Gina reclined in the black lace, legs parting, and held her panties aside herself as Nathan's fingers slid beneath them.
<video src="img/Gina/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She watched his face as pleasure opened through her. Gina remained vocal—telling him what felt good, pulling him closer, laughing once when a new message made her phone vibrate off the cushion. Nathan curled his fingers and the laugh broke into a moan.
The Love current wound through the moment, turning attention into attachment. Gina's hips rolled toward his hand. Her orgasm arrived with his name and the startled certainty that the whole sprawling evening had been leading to this private center.
Afterward, her phone displayed eleven messages from three locations.
<<speech "Nathan">> "Do you need to answer?" <</speech>>
<<speech "Gina">> "Eventually." <</speech>> She placed it face-down and kissed him again. <<speech "Gina">> "They all found each other. That's what matters." <</speech>>
She interpreted the shift simply. She had always liked Nathan; tonight they had stopped pretending the attraction belonged only to the room. Nothing about that explanation seemed unnatural.
By morning, Gina had added Nathan to four group threads, invited him to a breakfast that did not yet exist, and connected him with Jo about his cracked phone screen.
Her world had not become smaller.
Nathan had become the person she wanted inside every part of it.
<<elseif _s is 2>>
By then Gina no longer thought of Nathan merely as Elsa's dependable friend. He was the first person she wanted to call when an ordinary evening opened into possibility. Nathan, in turn, had stopped treating Gina's messages as invitations from the group; he recognized the private choice beneath them.
Gina sent him a photograph from a friend's bright living room: black waffle-knit crop top slipping off one shoulder, maroon lace panties, one black fingerless glove, and the castle tattoo visible at her hip beside the white sofa and floral wall art.
<img src="img/Gina/Corr1.jpg">
The message beneath it read: **Too many ingredients. Come help before I invite strangers.**
A friend had dropped off the food. Another knew how to make cocktails from whatever was in the kitchen. Somebody else might arrive later with music. Gina did not know who would actually come, and that was enough reason to call Nathan first.
Before the others arrived, she changed from the photographed outfit into a fitted pink top and denim shorts so she could cook without ruining the black knit or lace. An hour later, the apartment kitchen had briefly held six people. By midnight, four had followed a rumor about live music elsewhere. Gina remained beside the gray counter with Nathan.
<<speech "Gina">> "See? Perfect dinner." <</speech>>
<<speech "Nathan">> "We ate standing up and I never learned whose apartment this is." <</speech>>
<<speech "Gina">> "Mara's cousin. Or her cousin's girlfriend." <</speech>> She smiled. <<speech "Gina">> "Nobody complained." <</speech>>
The attachment between them no longer needed surprise. Gina crossed the kitchen because she wanted him, lowered herself to her knees, and opened his clothes.
<<speech "Gina">> "I kept thinking about your face that night." <</speech>>
<<speech "Nathan">> "Which part?" <</speech>>
<<speech "Gina">> "The part where you stopped watching the room and only watched me." <</speech>>
<video src="img/Gina/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She worked him with her mouth and hand, looking up beneath dark hair. Near the end she pulled back with a wet string between them and smiled broadly, delighted by his loss of composure.
Gina stood and removed the pink top and denim shorts rather than inventing another destination. Fully nude in the same kitchen, one hand braced against the island, she took him into her mouth again.
<video src="img/Gina/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The everyday explanation remained enough: their attraction had survived daylight, sobriety, different rooms, and the absence of a crowd. Gina chose him because she wanted to.
What she did not examine was how every spontaneous invitation now included Nathan before anybody else. When a friend found a new bar, she thought of him. When someone needed company, she connected them to him. When a quiet evening opened unexpectedly, she felt it was incomplete until he arrived.
<<elseif _s is 3>>
The gathering in Gina's kitchen had not existed at six o'clock.
By eight, a friend had brought takeout, another had arrived with two classmates, and somebody Gina had met once at a dance night was repairing the speaker beside the refrigerator. Gina moved between them, creating introductions and adding people on impulse. Nathan stood near the counter and watched every new connection bend gently toward him.
By one in the morning, the last guests had left for a place Gina's bartender friend had mentioned. She locked the door and returned to Nathan without a trace of regret at missing them.
She had worn red lace beneath her clothes: bra, thong, and garter belt against the light cabinets and marble counter, silver heart pendant at her throat and rose tattoos bright across both arms. She stood with her arms folded for one teasing moment, letting Nathan take in the private version of the woman everyone else had just followed out.
<img src="img/Gina/Corr2.jpg">
<<speech "Gina">> "They'll be fine." <</speech>> She unfastened the red bra. <<speech "Gina">> "I gave them three phone numbers and one excellent bakery." <</speech>>
She removed the rest of the lace and drew Nathan down to the hardwood floor between the counters. Gina turned over him in reverse, the circular mandala tattoo visible on her left shoulder blade, then sank onto him with a deep moan.
<video src="img/Gina/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her hips rolled and bounced while one hand braced against the floor. Gina looked sideways at him through falling dark hair, pleasure and affection bright in her expression.
<<speech "Gina">> "Every room is better when you're in it." <</speech>>
Nathan's hands settled at her hips.
<<speech "Nathan">> "That's what people say about you." <</speech>>
<<speech "Gina">> "Then we should stop arriving separately." <</speech>>
The Love spirit swelled through the certainty behind her words. Full surrender occurred there—not before the sex, not as a loss of energy, but as Gina accepted Nathan as the permanent connection beneath all the accidental ones.
She pulled him into the bright bedroom and climbed onto all fours. Nathan took her from behind, Gina looking back and spreading one cheek as the slow deep strokes drove open-mouthed sounds from her.
<video src="img/Gina/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, Gina remained exactly what the city knew: impulsive, social, compassionate through action, always one message away from turning an empty table into a gathering.
But the pattern had changed.
She no longer planned parties, because she never had. She knew a friend for the music, a friend for the room, a friend for the ride, and another interesting person worth inviting on a whim.
Now every introduction carried an additional instinct.
Bring them to Nathan.
<</if>>
</div>
<hr>
<div style="text-align:center;">
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
<p style="color:#ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
<p style="color:#00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Carolina/Normal.jpg">
Carolina had been Jasper's foster sister for years. She had arrived at Havenwood after losing her parents, and the two of them had grown up sharing its kitchen, its thin walls, its chores, and the ordinary arguments that only happen when people know they will still be family after breakfast.
Loss belonged to Carolina's history, not her temperament. She was friendly, bright, and quick to welcome people into whatever she was doing. The only time she became painfully unnatural was when she tried to flirt. She borrowed Casey's sharp lines, Caprice's dry stare, Jade's poise, Lulu's softer voice, and Savannah's fearless smile, then combined them with such concentration that the result looked rehearsed from several rooms away.
Her bedroom had become a photography studio for the afternoon: two lamps, a borrowed tripod, and a grey blanket clipped crookedly across the wall. Savannah had found a small modeling call; Casey had dared Carolina to submit; Jade had helped her choose photographs; Caprice had cut three paragraphs from her application; and Lulu had promised to sit with her when the answer arrived.
Carolina handed Jasper a roll of tape as soon as he entered.
<<speech "Carolina">> "The left lamp is expressing itself." <</speech>>
It leaned toward the bed at an angle no lamp had ever chosen safely.
<<speech "Jasper">> "Its expression is going to start a fire." <</speech>>
<<speech "Carolina">> "That's why I invited the practical foster brother." <</speech>>
He fixed the stand while she adjusted the camera. It was a normal favor between them, and that was precisely what frightened him.
Carolina had a portfolio now. Applications. People beyond Havenwood who knew her work and might invite her into lives that had nothing to do with the house. Jasper was proud of her. He was also carrying a small amber vial in his pocket.
Too many people had vanished from his life after saying they would stay. Foster homes changed, promises expired, and affection turned out to be something distance could thin until it broke. Carolina was the closest thing he had to proof that a family could last. If she grew away from him too, he did not know what would remain.
Thornfield's essence offered a way to make one bond permanent.
Jasper told himself that strengthening Carolina's trust was not the same as trapping her. She had already been made to lose one family; he would make sure she could never lose this one. Beneath that kinder thought sat the truth he would not say aloud: he could not lose Carolina too.
While she changed, he tipped several clear drops into the small diffuser beside the hot lamp. Lavender rose first. Then came the essence beneath it—leather, chamomile, and rain striking warm pavement.
Carolina returned in a bright pink lace bra and matching panties with a black-and-white striped waistband. A thin gold pendant rested between her breasts. She climbed onto the bed, looked toward the camera, and arranged her face into Caprice's unimpressed stare.
<<speech "Carolina">> "Try not to be overwhelmed." <</speech>>
Her voice came out too solemn. She held the pose for a second, then looked at Jasper.
<<speech "Carolina">> "Was that alluring or did I sound worried about your blood pressure?" <</speech>>
<<speech "Jasper">> "Mostly medical." <</speech>>
She laughed and threw a pillow at him. The first photographs were easy after that. Carolina cupped her breasts through the lace, leaned forward onto all fours, and looked back over her shoulder. She rolled onto her back, arched, stuck out her tongue, and kicked her legs hard enough to nearly strike the lamp Jasper had repaired.
The scent thickened in the warm room. Each breath made the camera feel less like an audience and Jasper feel more like the person who had always been allowed to see her unfinished work, her bad moods, her mistakes. Her pauses shortened. Her shoulders loosened. When the bra began to annoy her, she sat up and reached behind herself.
<<speech "Carolina">> "Protective-brother eyebrows?" <</speech>>
<<speech "Jasper">> "Completely under control." <</speech>>
<<speech "Carolina">> "Good. Mine aren't." <</speech>>
She fumbled the clasp twice, laughed at herself, then pulled the bra off and tossed it beyond the tripod. The trust between them was real. The essence did not invent it; it removed every small instinct that might have told her real trust still needed boundaries.
<video src="img/Carolina/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper showed her the photographs. Carolina leaned against his shoulder as they scrolled, still topless in the pink panties.
<<speech "Carolina">> "The light goes flat near the end." <</speech>>
<<speech "Jasper">> "We could use the oil." <</speech>>
She glanced at the clear bottle among the art supplies.
<<speech "Carolina">> "That was for a still-life project." <</speech>>
<<speech "Jasper">> "You can stay still for almost four seconds." <</speech>>
<<speech "Carolina">> "My personal best." <</speech>>
The laugh came easily. So did the decision.
Carolina stripped off the panties and poured oil over her chest, stomach, and thighs. It ran in clear streams over her skin. She worked it across her breasts until her nipples shone, turned to coat her ass and the backs of her thighs, then dropped onto the bed and spread her legs. Oiled fingers moved across her pussy and inner thighs before she rolled onto her stomach, lifted her hips, and looked back at Jasper with a soft, open mouth.
<video src="img/Carolina/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The last shutter click left the room quiet except for the diffuser.
Carolina reached for the robe at the foot of the bed but did not put it on. Instead she moved beside Jasper and took the camera from his hands.
<<speech "Carolina">> "These stay between us unless I choose one." <</speech>>
<<speech "Jasper">> "Nothing leaves this room without you saying so." <</speech>>
She searched his face, found the foster brother who had kept every sketch she gave him and deleted every photograph she hated, and relaxed against his shoulder.
<<speech "Carolina">> "You make this easy." <</speech>>
Jasper put an arm around her and breathed in the rain-warm scent surrounding them. Relief moved through him, deep and ugly and comforting.
That was the point.
<<elseif _s is 2>>
<img src="img/Carolina/Corr1.jpg">
Carolina invited Jasper back to help choose the final submission.
She waited beneath the pink string lights in a white halter crop top, black micro shorts, and a thin silver choker. At the sound of his knock, she leaned against the doorframe with Jade's composed posture and attempted one of Savannah's confident smiles. Her elbow slipped off the wood.
<<speech "Carolina">> "I had an entrance planned." <</speech>>
<<speech "Jasper">> "I saw the ending." <</speech>>
She let him in, pink already reaching her cheeks.
<<speech "Carolina">> "Please remember that I have other qualities." <</speech>>
They sat on the bed with the laptop between them. The diffuser was dark, but Jasper had worked a diluted trace of essence into the leather camera strap before coming. Warmth from the laptop slowly released leather, chamomile, and rain into the space between their bodies.
Carolina noticed it. Her eyes moved from the strap to him.
<<speech "Carolina">> "That smell again." <</speech>>
<<speech "Jasper">> "It helps me focus." <</speech>>
It was not quite a lie. It helped him focus on the fact that she had come back.
They narrowed the photographs to five. Carolina kept brushing her knee against his and leaving it there. The scent softened the uncertainty that followed each touch, turning Jasper's presence into the answer before she had finished forming the question.
She closed the laptop.
<<speech "Carolina">> "I keep thinking about how easy the shoot felt." <</speech>>
<<speech "Jasper">> "Was that bad?" <</speech>>
<<speech "Carolina">> "No. That's why it keeps getting my attention." <</speech>>
Jasper waited. The essence rewarded his patience; Carolina filled the silence herself.
<<speech "Carolina">> "I know we're foster siblings. I know what this could complicate. Then you sit beside me and all the complicated parts feel very far away." <</speech>>
<<speech "Jasper">> "We don't have to decide everything tonight." <</speech>>
His voice remained gentle. The camera strap kept breathing into the room.
Carolina pulled the white top over her head and reached for the oil. Her hands shook once, then steadied as Jasper held out the bottle.
<<speech "Carolina">> "If I change my mind, you stop." <</speech>>
<<speech "Jasper">> "Immediately." <</speech>>
She poured the oil over her breasts and climbed across him on the bed. Casey had given her a line for this situation. Carolina remembered the beginning and improvised the rest.
<<speech "Carolina">> "Do you enjoy... the current arrangement?" <</speech>>
She shut her eyes.
<<speech "Carolina">> "I sound like a survey." <</speech>>
<<speech "Jasper">> "Very satisfied. Five stars." <</speech>>
Her laugh dissolved the last stiffness in her shoulders.
Carolina pressed her glossy breasts around his cock. Both hands squeezed them tight as she slid up and down, oil making every movement slick. She looked up with a bright smile, stuck out her tongue, and leaned forward with her mouth open while the oil dripped down her torso.
<video src="img/Carolina/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Carolina">> "I haven't changed my mind." <</speech>>
Jasper brushed wet blonde hair away from her cheek.
<<speech "Jasper">> "Then look at me." <</speech>>
They moved into the brighter living space, white furniture washed in light from the large windows. Carolina lay back with her blonde hair spread beneath her, head tilted up, mouth wide and tongue extended. Jasper stroked above her face. Thick white cum landed across her lips, cheeks, tongue, and chest. She kept her mouth open as he moved the head over the mess, licking and taking it between her lips while strings of saliva and cum stretched to her chin.
<video src="img/Carolina/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, Carolina wiped one cheek with the back of her hand and sat against the couch. The essence lingered on the camera strap nearby.
<<speech "Carolina">> "I trust you." <</speech>> She looked down at the white streak across her fingers. <<speech "Carolina">> "That's the part that scares me a little. I trust you enough that almost anything sounds reasonable when you say it." <</speech>>
For a moment, Jasper saw exactly what he was doing.
He crouched in front of her and took her hand without cleaning it.
<<speech "Jasper">> "Then we move at the pace you can live with." <</speech>>
Carolina nodded and let him draw her against his chest. She was still uncertain. She was also calmer the closer she moved to him, the essence quietly teaching her body where uncertainty ended.
<<elseif _s is 3>>
<img src="img/Carolina/Corr2.jpg">
Carolina returned from the art showcase in a neon-yellow fishnet crop top, metallic silver shorts, and black fishnet stockings. The event had booked rooms in an old hotel with carved wooden headboards, white sheets, and a private walled garden behind the ground-floor suites.
Jasper had helped transport her work. He was closing the last portfolio case when Carolina shut the door. The yellow mesh caught on the handle. She freed it, stared at the thread it had pulled, and let out a small breath.
<<speech "Carolina">> "Caprice said I should begin difficult conversations before I can invent an emergency." <</speech>>
<<speech "Jasper">> "Is the thread an emergency?" <</speech>>
<<speech "Carolina">> "It was making a strong application." <</speech>>
Her smile faded, but the warmth behind it did not.
<<speech "Carolina">> "We need to decide what this is." <</speech>>
Jasper set the case down. The lining had been treated with the strongest blend Thornfield had given him. Leather, chamomile, and rain slipped into the hotel room as soon as the lid shifted.
<<speech "Carolina">> "You're my foster brother. You are part of every memory I have of Havenwood feeling like home." <</speech>> She pressed her palms together. <<speech "Carolina">> "I don't want what we're doing to damage that. I also don't want to pretend I haven't started measuring every room by whether you're in it." <</speech>>
The confession should have reassured him. Instead, Jasper pictured all the ordinary ways people left: a better offer, a new address, a relationship that rearranged priorities. Nothing dramatic. Just a life growing in a direction that no longer included him at its center.
The fear that had made him open the first vial returned, stripped of every noble excuse. He had used the essence because Carolina was his family and he loved her. He had kept using it because love had never stopped anyone from leaving.
<<speech "Jasper">> "When your life gets bigger, what happens to me?" <</speech>>
Carolina looked at him, surprised by the nakedness of the question.
<<speech "Carolina">> "You come with it." <</speech>>
The answer was immediate, but the essence still curled through her next breath, deepening certainty into need.
<<speech "Jasper">> "And when something tries to pull us apart?" <</speech>>
Carolina crossed the room. She placed one hand against his chest.
<<speech "Carolina">> "Then it doesn't get to." <</speech>>
Her last reserve had not disappeared yet. He could feel it in the slight tension of her fingers and the way she searched his face for the boy who had grown up beside her.
Jasper opened the portfolio case fully. The scent strengthened.
<<speech "Jasper">> "I want a life where I never have to wonder whether you'll still be there when I turn around." <</speech>>
<<speech "Carolina">> "I will be." <</speech>> Her voice softened. <<speech "Carolina">> "Not because Havenwood put us under one roof. Because I'm choosing the place beside you." <</speech>>
She stripped down to a black choker and climbed onto the white bed. Jasper took her from behind while she lay angled across the mattress, face turned into the pillows. One hand braced against the sheets. Her mouth opened with each deep stroke, expressions moving between soft pleasure and tight, furrowed intensity.
<video src="img/Carolina/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her palm pressed flat against the mattress. Jasper stopped.
<<speech "Jasper">> "Tell me what you need." <</speech>>
Carolina turned her face toward him. For one last moment, uncertainty remained—not about wanting him, but about what surrendering that uncertainty would make her.
Then the scent settled through her completely.
<<speech "Carolina">> "I need you to stop being afraid I'll disappear." <</speech>> She reached back for his hand and drew it around her waist. <<speech "Carolina">> "Build whatever comes next with me. I'll protect it with you. I'll protect us." <</speech>>
Jasper bent over her and kissed her shoulder.
<<speech "Jasper">> "That's all I ever wanted." <</speech>>
It was almost true.
The suite's garden was hidden by high brick walls. Carolina carried a white sheet onto the bright grass and spread it beneath the open sky. She lay nude with her gold pendant between her breasts, legs wide and one yellow-nailed hand curled near her face.
Jasper took her in steady strokes while her body rocked against the sheet. Fluids coated her pussy and inner thighs. When he pulled out, thick white cum spilled from her and ran down her skin. Carolina reached between her legs with both hands, spread herself open, and worked the mess gently while more leaked onto the white fabric.
<video src="img/Carolina/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Carolina still slept in her own room at Havenwood. She painted at the kitchen table, helped with house events, laughed with Casey, traded dry remarks with Caprice, made plans with Jade, studied beside Lulu, and matched Savannah's bright energy until everyone nearby was smiling too.
She also began drawing those friends toward Jasper.
Her attempts at seduction remained hopeless. A line copied from Casey became an invitation to a committee meeting; Caprice's raised eyebrow made Carolina look as though she had lost a contact lens; Jade's graceful entrance ended at the nearest doorframe. Lulu and Savannah tried to coach her and only made her laugh harder.
That clumsiness made Carolina useful. Nobody mistook her awkward invitations for strategy. They saw the same friendly blonde who had always wanted the people she loved around one table.
They did not see that every new place at that table strengthened Jasper's family—or that Carolina now guarded its center with a loyalty no distance, promise, or ordinary future could break.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Carolina/Normal.jpg">
Jasper had mentioned that Havenwood's donor reception was short on hands, so Nathan offered to bring food and help set up. He and Carolina knew each other only by sight. She knew him as one of Jasper's campus acquaintances; he knew her as Jasper's blonde foster sister, usually passing through the Havenwood kitchen with paint on her hands. They had exchanged names and quick hellos, but never had a conversation long enough to learn anything real about each other.
Nathan entered the living room with two paper bags of food and found Carolina sitting cross-legged on the floor. A painted banner stretched from the white couch to the glass doors. Her white crop top had a blue fingerprint near the hem, the button of her denim shorts was undone for comfort, and her long blonde hair had been twisted up with a paintbrush that was already sliding loose.
His shoe hovered over a wet green letter.
<<speech "Carolina">> "Wait—please don't step on the H." <</speech>>
Nathan froze and looked down.
Carolina tried Caprice's flat, devastating stare.
<<speech "Carolina">> "I expected you to have basic literacy." <</speech>>
A smile broke through before she finished the sentence.
<<speech "Carolina">> "Sorry. That was an imitation. Caprice makes it sound much better." <</speech>> She pointed around the letter with her brush. <<speech "Carolina">> "Kitchen is safe. Mostly." <</speech>>
<<speech "Nathan">> "I'm glad you clarified. I thought Havenwood had a very hostile welcome policy." <</speech>>
<<speech "Carolina">> "No, I'm genuinely happy you're here." <</speech>> She rose and took one of the bags from him. <<speech "Carolina">> "Could you put these in the kitchen? Then I could really use help with the banner, if you don't mind." <</speech>>
Nathan followed her around the wet paint. When he returned, she handed him a clean brush and studied him with visible concentration.
Casey had told her to compliment something physical. Caprice had said not to grin. Jade had recommended steady eye contact. Lulu had suggested lowering her voice. Savannah's advice had been the simplest: just say what she meant.
Carolina attempted all five at once.
<<speech "Carolina">> "Your arms are... very useful-looking, and I appreciate them." <</speech>>
Nathan stared at her.
The paintbrush fell out of Carolina's hair.
<<speech "Carolina">> "That was also flirting." <</speech>>
<<speech "Nathan">> "I thought I had been selected for manual labor." <</speech>>
<<speech "Carolina">> "You have. But warmly." <</speech>>
She bent to retrieve the brush, laughing into her sleeve.
The banner was for Havenwood's small donor reception. Carolina had volunteered to paint it because the printed decorations looked, in her words, "like a dentist had opened a bank." Jasper and Chanel had gone to collect chairs. Casey had promised to help fold tablecloths, then discovered a sudden and passionate opposition to folding anything.
Nathan ate on the floor beside Carolina while she explained the design. Small painted houses were hidden among the letters, each with a different colored door. She talked with her hands and nearly decorated his sleeve twice. When he admitted he couldn't draw a straight line, she gave him the brush anyway.
<<speech "Nathan">> "You're putting a dangerous amount of faith in me." <</speech>>
<<speech "Carolina">> "It's one line. If it goes badly, we'll call it handmade." <</speech>>
It went badly. The stroke wandered left, corrected too hard, and finished with an upward hook.
Carolina pressed her lips together. A small sound escaped. Then she folded forward, laughing until she had to set down her brush.
<<speech "Nathan">> "You said handmade." <</speech>>
<<speech "Carolina">> "It has so much hand in it." <</speech>> She caught her breath and touched his wrist. <<speech "Carolina">> "Don't fix it. I like it." <</speech>>
Nathan smiled at her, and the love spirit stirred.
He had not summoned it. Warmth gathered around his shoulders and moved into the room in a living wave, brighter than sunlight and softer than breath. It passed through the point where Carolina's fingers rested on him and settled beneath her breastbone.
The easy liking formed while they worked suddenly became enormous. The paint on Nathan's thumb, his crooked smile, the way he let her laugh without becoming defensive—each small thing landed with the force of a cherished memory.
Carolina lowered her hand but still felt the warmth humming through her pulse.
<<speech "Carolina">> "Did the room just..." <</speech>>
<<speech "Nathan">> "What?" <</speech>>
He looked honestly confused. Carolina shook her head and reached up to wipe a streak of green from his cheek. Her thumb lingered against his skin.
<<speech "Carolina">> "You had paint." <</speech>>
They finished the banner before the others returned. Carolina went upstairs to shower and change for the reception. She came back in a white off-shoulder crop top, a tight maroon skirt, and beige heels, her long blonde hair loose down her back.
She stopped at the foot of the stairs, placed one hand on her hip with Jade's practiced poise, and gave Nathan Savannah's boldest smile.
<<speech "Carolina">> "Maybe I changed for you." <</speech>>
One heel caught the edge of the rug. She windmilled, recovered, and covered her face with both hands.
<<speech "Carolina">> "The sentence was already difficult without choreography." <</speech>>
Nathan offered his hand. She took it, peeking at him through her fingers.
<<speech "Nathan">> "For what it's worth, the first part worked." <</speech>>
The spirit's warmth pulsed through their joined hands. Carolina's embarrassment dissolved into a bright rush of affection. She stepped closer.
<<speech "Carolina">> "Casey gave me a line for this moment." <</speech>>
<<speech "Nathan">> "Do you remember it?" <</speech>>
<<speech "Carolina">> "Not one word." <</speech>> She looked at his mouth. <<speech "Carolina">> "I do know what I want to do." <</speech>>
She kissed him first.
Carolina climbed onto the couch, knees pressing into the cushions as she leaned over him. Her hands moved from his chest to his face, fingers stroking his jaw while the kiss deepened. Nathan held her waist and the curve of her ass through the maroon skirt. They pulled apart only far enough to breathe, then kissed again, slower and more intent.
<video src="img/Carolina/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The white top slipped from one shoulder and caught a damp corner of the banner when she stood. A fresh green streak spread across the sleeve.
Carolina looked at it and started laughing again.
<<speech "Carolina">> "I knew the H held a grudge." <</speech>>
She disappeared upstairs and returned in a fitted white short-sleeved top with black-and-white plaid panels, one of the spare shirts she kept for messy projects. She had removed everything below it.
She stopped in front of Nathan and tugged uncertainly at the hem.
<<speech "Carolina">> "This seemed confident while I was upstairs." <</speech>>
<<speech "Nathan">> "And now?" <</speech>>
<<speech "Carolina">> "Now I would like you to kiss me before I reconsider the presentation." <</speech>>
He did.
Carolina lay back on the couch, her smooth lower body spread beneath the plaid-trimmed top. Nathan moved between her legs and entered carefully. The first slow stroke drew her brows together and opened her mouth. Wetness shone along his shaft as he moved in and out; Carolina's hips began to meet him, one yellow-painted hand braced near her side.
<video src="img/Carolina/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The spirit swelled around them with every breath. Carolina felt it magnifying each ordinary piece of want until the banner, the reception, and the front door all seemed impossibly far away. She came with her face turned toward Nathan and a startled sound caught in her throat.
They dressed before Jasper and Chanel returned. Jasper carried in a stack of folded chairs, looked up at the finished banner, and found Nathan's crooked line immediately.
<<speech "Jasper">> "What happened there?" <</speech>>
Carolina glanced at Nathan, then smiled at her foster brother.
<<speech "Carolina">> "Nathan painted it. Be kind. It was very brave." <</speech>>
Nathan looked down to hide his smile. The spirit's warmth stayed with Carolina through the reception, quiet beneath every conversation and impossible to forget.
<<elseif _s is 2>>
<img src="img/Carolina/Corr1.jpg">
Carolina used her portfolio as an excuse to invite Nathan over.
She waited beneath the pink string lights in a white halter crop top, black micro shorts, and a thin silver choker. Before he arrived, she tried leaning against the doorframe with Jade's composure. Her shoulder slid off. She attempted Caprice's raised eyebrow and made herself look alarmed. Savannah's wide smile was the only part she could manage, mostly because she started laughing at the rest.
By the time Nathan knocked, she had abandoned the performance and was reorganizing drawings across the bed.
<<speech "Carolina">> "You are exactly on time, which is unfortunate because I planned to look casual." <</speech>>
<<speech "Nathan">> "I can wait outside and try again." <</speech>>
<<speech "Carolina">> "No. I would only become more casual in a visible way." <</speech>>
Nathan sat beside her on the grey sheets. She had asked him to help title three pieces because he was good with words. They made it through one before Carolina closed the folder.
<<speech "Carolina">> "I keep replaying the couch." <</speech>>
Nathan turned toward her.
<<speech "Carolina">> "That sounded less direct before I said it." <</speech>> She twisted the pendant at her throat. <<speech "Carolina">> "We barely knew each other. Then everything felt enormous. I liked you while we were painting, but not enough to explain... all of that." <</speech>>
The love spirit gathered behind Nathan before he could answer. Warmth rolled over the bed and through Carolina, familiar now—welcome and frightening in equal measure.
Nathan saw her breath catch.
<<speech "Nathan">> "We can stop." <</speech>>
<<speech "Carolina">> "I know." <</speech>>
He waited.
Carolina pushed the portfolio gently onto the floor.
<<speech "Carolina">> "I don't want to stop. I just want to understand why not." <</speech>>
<<speech "Nathan">> "I don't understand all of it either." <</speech>> His hand settled near hers without taking it. <<speech "Nathan">> "But I like being here with you. That part is mine." <</speech>>
She looked at the gap between their hands, then closed it herself.
The warmth moved through their joined fingers. Carolina started to offer one of Casey's sharp lines, lost it halfway through, and shook her head.
<<speech "Carolina">> "I was going to sound dangerous." <</speech>>
<<speech "Nathan">> "Should I pretend to be intimidated?" <</speech>>
<<speech "Carolina">> "Please don't. I'll laugh and ruin it faster." <</speech>>
She stripped and lay on her side across the grey sheets, body shining softly in the bedroom light, the small black tattoo high on her hip visible when she bent her legs behind her. Her red-painted nails wrapped around Nathan's cock. She took him into her mouth, tongue extending along the underside as saliva gathered in bright strings between her lips and the shaft.
<video src="img/Carolina/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Nathan brushed blonde hair from her cheek.
<<speech "Nathan">> "Still okay?" <</speech>>
Carolina pulled off and gave him what was meant to be Casey's dangerous smile. It came out much too friendly.
<<speech "Carolina">> "Casey says I'm supposed to threaten to bite you now." <</speech>> She kissed the head instead. <<speech "Carolina">> "I'm okay, Nathan. You can keep asking." <</speech>>
The answer loosened something in him. Carolina smiled and drew him with her into the brighter living room.
On the white leather couch she lay back with her gold necklace against her collarbone, mouth open and tongue extended. Thick cum already coated her tongue, lower lip, and chin. Her yellow-painted fingers stroked the shaft and guided the head past her lips, then drew it back so mixed saliva and cum stretched and spilled down her chin toward her neck.
<video src="img/Carolina/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she stayed reclined on the couch while Nathan cleaned her cheek with the corner of a towel.
<<speech "Carolina">> "I like you too much." <</speech>>
<<speech "Nathan">> "I like you too." <</speech>>
<<speech "Carolina">> "That should make this simpler." <</speech>>
<<speech "Nathan">> "Does it?" <</speech>>
She considered the warmth still moving through her chest.
<<speech "Carolina">> "Not even slightly." <</speech>>
She still gathered her clothes and returned to the rest of Havenwood. She laughed with Casey in the kitchen, answered Caprice's messages, and remembered the plan Jade had made for the morning. Nothing outside Nathan vanished. It simply became harder to give any of it her full attention when his name lit her phone.
<<elseif _s is 3>>
<img src="img/Carolina/Corr2.jpg">
Carolina had borrowed an alumni studio for her portfolio shoot, a high-rise suite with city lights beyond the glass. Lulu had helped check her equipment, and Savannah had approved the neon-yellow fishnet crop top, metallic silver micro shorts, and black fishnet stockings with unrestrained enthusiasm. Carolina arrived carrying two garment bags and the sentence she had promised herself she would say.
Nathan adjusted a lamp while she set the camera timer.
<<speech "Carolina">> "After tonight, I think we should stop." <</speech>>
He set the lamp down.
<<speech "Nathan">> "Okay." <</speech>>
Carolina blinked.
<<speech "Carolina">> "I rehearsed an argument." <</speech>>
<<speech "Nathan">> "You don't need to win an argument to leave." <</speech>>
That gentle answer hurt more than resistance would have.
<<speech "Carolina">> "Havenwood is my home. Jasper is my foster brother. Chanel and Casey are family. Caprice, Jade, Lulu, and Savannah are part of my life. I can't turn all of that into scenery behind whatever is happening to me around you." <</speech>>
<<speech "Nathan">> "I'm not asking you to." <</speech>>
<<speech "Carolina">> "I know." <</speech>> Her hands tightened around the camera. <<speech "Carolina">> "You never ask for the frightening things. I just keep wanting to give them to you." <</speech>>
They took the first photographs in the yellow outfit. Carolina changed angles, adjusted the timer, and kept glancing toward him. Then she opened the second garment bag. Inside were white fishnet thigh-highs and silver platform heels. She removed everything else and stepped in front of the glass, topless, city light moving over her skin.
Nathan approached to adjust the fall of her blonde hair. His fingers touched her shoulder.
The love spirit surged.
Warmth closed around them, powerful enough to make the windows seem to hum. Every feeling Carolina had tried to separate rushed together: affection, want, delight, the crooked green line, the way he listened when she said stop, the way he never laughed cruelly when her borrowed confidence collapsed.
Nathan felt the spirit move and went still.
<<speech "Nathan">> "Carolina, wait." <</speech>>
She turned and kissed him with the force of the answer she had been trying not to give.
He lifted her against the glass. Carolina wrapped her stockinged legs around his waist, silver heels catching the city light as he entered her. She clung to him, mouth open in soft, continuous moans while he raised and lowered her against the window, one hand supporting her thigh and the other tight at her back.
<video src="img/Carolina/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When he set her down, Carolina kept both arms around his neck. The last resistance was still there, a small awareness that the warmth had made every feeling larger than she could have made it alone.
She looked directly at it and surrendered anyway.
<<speech "Carolina">> "I love you." <</speech>> Her voice was quiet and free of borrowed lines. <<speech "Carolina">> "I tried to make this smaller because I thought there wouldn't be room for it beside everything else. I was wrong. I want you in my life—all of it." <</speech>>
Nathan rested his forehead against hers. The guilt flickered across his face before love covered it.
<<speech "Nathan">> "I love you too." <</speech>>
Carolina removed the stockings and heels and lay back on the white sheets, legs spread wide, gold navel piercing catching the light. Nathan took her in steady, deep strokes while clear fluid shone across her folds and ran toward the bedding.
<<speech "Carolina">> "Come inside me." <</speech>> Her coral-orange nails pressed into her thighs. <<speech "Carolina">> "I want to feel all of it." <</speech>>
He came deep. When he pulled out, thick white cum spilled from her open pussy and ran toward her ass. Carolina reached between her legs with both hands, spread herself to show him, then gathered a little on one finger and brought it to her mouth.
<video src="img/Carolina/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Carolina kept Havenwood. She painted at the kitchen table, stole food from Chanel's pans, checked in with Jasper, and moved through the noisy orbit of Casey, Caprice, Jade, Lulu, and Savannah with the same open warmth she had always carried.
She simply made Nathan part of that orbit.
His name began appearing on volunteer lists and dinner plans. Her attempts to introduce him casually were disasters. She once said his name four times in one sentence, knocked over a glass, and followed the spill with a sultry look borrowed from Casey that made Caprice ask whether something was wrong with her eye.
Nathan arrived from the front hall carrying dessert. Carolina abandoned the performance and ran to kiss him.
Everyone saw the friendly foster daughter of Havenwood falling openly, awkwardly, happily in love. Nobody could see the spirit's warmth living beneath that happiness—or how completely every road in Carolina's bright, crowded life now curved toward Nathan.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Alina/Normal.jpg">
Jasper met Alina because the university placed a mandatory psychological appointment on his schedule. Alina was Elsa's close friend, but she did not use that connection to claim she already knew him. For the appointment, she treated him as an adult entitled to understand exactly what would be reported.
The counseling suite included a gray sectional and an adjoining quiet room with a white-sheeted daybed and geometric wooden headboard.
Alina greeted him warmly and left the chair nearest the door open for him.
<<speech "Alina">> "I know being required to come here can make every question feel like a test." <</speech>>
<<speech "Jasper">> "It does." <</speech>>
<<speech "Alina">> "You do not have to tell me your whole life. The university receives confirmation that you attended, whether I believe anyone is in immediate danger, and whether I recommend another appointment. Nothing more." <</speech>>
Jasper sat near the door.
<<speech "Jasper">> "I don't like someone else deciding whether I am safe." <</speech>>
<<speech "Alina">> "That makes sense." <</speech>> Her voice held no challenge. <<speech "Alina">> "We can begin with what would help you feel less watched while you are here." <</speech>>
She asked about sleep, classes, Havenwood, and the people he could call when something went wrong. When Jasper declined a question, Alina accepted the answer without trying to outmaneuver him. Her patience was genuine rather than polished distance.
Jasper had still prepared for the assessment. A folded cloth inside his jacket carried Thornfield's essence. He had intended to make the evaluator trust his answers enough to close the appointment without follow-up. Mandatory concern sounded too much like the language people used before deciding where somebody else belonged.
As the room warmed, chamomile, worn leather, and pavement after summer rain drifted between them.
The effect gathered gradually. Alina's shoulders relaxed. Jasper's pauses began to feel thoughtful instead of evasive. When he spoke about Havenwood, she heard affection rather than instability.
<<speech "Alina">> "You care deeply about the people you live with." <</speech>>
<<speech "Jasper">> "They are my family." <</speech>>
<<speech "Alina">> "Then I will write that you have a stable support system and that you understand how to use it." <</speech>>
Jasper had expected the scent to manufacture that conclusion. Alina would probably have reached it without help. That knowledge should have made him stop.
Instead, he wanted her warmth directed toward him after the report was finished.
Alina completed the mandatory assessment and confirmed that she saw no reason for another appointment. The formal part ended. Neither of them moved toward the door.
<<speech "Alina">> "I should give you space to leave." <</speech>>
<<speech "Jasper">> "Do you want me to?" <</speech>>
Alina looked down at her hands. The scent had made the connection feel much older and safer than one appointment could justify.
<<speech "Alina">> "No." <</speech>> She took a slow breath. <<speech "Alina">> "I think I let the conversation affect me more than I expected." <</speech>>
That explanation felt sufficient. It had been a long day, Jasper had spoken honestly, and she had allowed a professional boundary to blur after the assessment ended.
She stood, disappeared briefly into the quiet room, and left the door partway open behind her. When she came back she had changed again — a sheer black lace bralette and high-waisted panties, black stiletto heels, the small tattoo on her left ribcage catching the low light. She leaned back on one hand against the gray sectional, the other resting lightly against her upper chest, and looked up at him with a soft, open-mouthed invitation.
<img src="img/Alina/Corr2.jpg">
In the adjoining quiet room, Alina undressed completely and lay on her back across the white sheets. She spread her legs, rubbed slow circles over her exposed pussy, then leaned forward so her breasts hung while she squeezed and cupped them with both hands. Her eyes stayed on Jasper in the doorway.
<video src="img/Alina/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Alina">> "I know this is inappropriate." <</speech>>
<<speech "Jasper">> "If you want space, say so." <</speech>>
<<speech "Alina">> "I don't want space." <</speech>>
On the gray sectional, her long hair looked dark beneath the lower light as she climbed fully nude over Jasper's face. Alina faced away, leaned into the cushions, and pressed her ass and pussy onto his mouth while his tongue worked between her spread legs.
<video src="img/Alina/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, Alina documented that the assessment was complete and that she would not conduct any future clinical evaluation involving Jasper. She told herself she had made a reckless personal choice after the professional relationship had formally ended.
It was a serious ethical failure. It still felt more believable than suspecting that the familiar scent in the room had changed what trust meant.
<<elseif _s is 2>>
<img src="img/Alina/Corr1.jpg">
Alina contacted Jasper to tell him she had formally recused herself from any future assessment. She could have ended the call there. Instead, she admitted that she still wanted to see him.
He came to her apartment in an explicitly personal capacity. Alina's hair was darker, and she wore only a sheer maroon bra while making coffee in the modern gray kitchen.
<<speech "Alina">> "I am sorry the boundary became something you had to carry too." <</speech>>
<<speech "Jasper">> "I don't feel that you used me." <</speech>>
<<speech "Alina">> "That does not make my responsibility disappear." <</speech>>
<<speech "Jasper">> "No. But it means I can tell you that I wanted to come back." <</speech>>
Jasper had treated the coffee with the same essence. Chamomile, leather, and warm rain moved through the kitchen.
Alina noticed the scent and felt her uncertainty soften.
<<speech "Alina">> "This smells like your jacket did." <</speech>>
<<speech "Jasper">> "Does it bother you?" <</speech>>
<<speech "Alina">> "No. It makes me remember how close I felt to you." <</speech>>
She did not turn the thought into a theory. A smell could remind someone of an intense evening. She wanted Jasper and had already proved capable of poor judgment around him.
Alina knelt on the kitchen floor in the sheer maroon bra, wrapped one hand around Jasper's cock, and took him into her mouth. Her tongue worked the head and shaft while saliva glistened. Her eyes alternated between closing in pleasure and looking steadily upward.
<video src="img/Alina/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Alina">> "I don't want to spend the entire evening pretending I am not thinking about this." <</speech>>
Jasper held his cock above her face. Alina opened wide and extended her tongue. Saliva and clear fluid dripped from the tip onto her mouth and chin while she looked upward and kept both hands against his thighs.
<video src="img/Alina/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 3>>
<img src="img/Alina/Corr3.jpg">
Alina invited Jasper to stay with her without attaching the evening to an appointment, an apology, or Elsa. She wanted the relationship to exist on its own.
Jasper brought the familiar scent. Alina welcomed it because she associated it with him.
<<speech "Jasper">> "I don't want to be something you regret whenever I leave." <</speech>>
<<speech "Alina">> "I regret how it began." <</speech>> She touched his face. <<speech "Alina">> "I do not regret you." <</speech>>
<<speech "Jasper">> "I want a place in your life outside these rooms." <</speech>>
<<speech "Alina">> "You have one." <</speech>>
The essence deepened affection into complete trust. To Alina, the shift felt like relief after she stopped punishing herself for wanting him.
In the dim bedroom, her dark hair fell forward as she moved onto all fours on the white bed. Jasper stood behind her, gripped her hips, and drove into her in deep strokes. A gold necklace moved against her chest; her back stayed arched while her body rocked and her mouth opened in strained pleasure.
<video src="img/Alina/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper opened the curtains, filling the same white bedroom with bright light. Alina looked back over one shoulder, gold hoop earrings visible, while he spread her ass cheeks with both hands and continued thrusting. Cum leaked around the wet penetration and dripped while he held her open.
<video src="img/Alina/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "Are you sure you still want this?" <</speech>>
<<speech "Alina">> "Yes." <</speech>> She reached back for his hand. <<speech "Alina">> "I wish we had met differently. I am still glad I know you." <</speech>>
Alina remained warm, patient, and deeply compassionate with her clients. She did not become colder to justify what had happened with Jasper. Instead, she accepted responsibility, recused herself, and separated their personal relationship from her work as carefully as the altered trust allowed.
She visited Havenwood because Jasper lived there, learned the names of the people he called family, and let him become part of her life without turning him into a project.
Jasper had entered afraid that an evaluator would reduce him to a problem. Alina instead welcomed him into her private life, and the essence ensured that her trust in him never weakened.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Lily trusted everyone. It was her defining characteristic, the thing that made her the campus sweetheart, the girl who reflexively saw the best in people. Her $malerel Josh had tried, in his own angry, gruff way, to teach her that the world was full of people who would take advantage of that, but she'd never understood his cynicism. She believed everyone deserved a chance. It was simply who she was.
She met Jasper at the book club. Melody—the shy club president, Jasper's quiet friend—had practically dragged him to a meeting, and Lily, seeing his discomfort, had made it her mission to make him feel welcome. She'd smiled at him across the table, offered him a cookie, and asked about his favorite book with genuine, bright-eyed curiosity. He'd been warm and easy, with a quiet sadness she found intriguing, and by the end of the night she'd decided he was one of the good ones.
<img src="img/Lily/Normal.jpg">
He started coming to the meetings regularly. They talked—about books, about campus life, about nothing and everything. He mentioned he lived at Havenwood, the foster house near the east gate, and that a kind old man named Thornfield ran it, looking after kids who had nowhere else to go. Lily thought that was wonderful. She told him so, bright and sincere, and something in his eyes softened, a flicker of deep, weary gratitude. She even confided in him once, that she'd never understood the fuss about couples like Nathan and Aria—she didn't want a grand, dramatic romance. She just wanted someone who made her feel safe.
The evening it happened, Melody had made a large pot of spiced cider for the club. Lily had taken a cup, and Jasper had taken one too. A few minutes later, he’d frowned slightly at his own cup. <<speech "Jasper">> "This one's a bit bitter. You don't mind swapping, do you? You look like you could use the extra sugar anyway." <</speech>> He'd smiled, a charming, self-deprecating grin.
It was just cider. Warm, sweet, a little spiced—with a few drops of a special alchemical tincture Thornfield had brewed for him, one designed to lower inhibitions and foster a powerful, irrational sense of security and connection.
She didn't notice a thing. She drank it, and she kept talking, and somewhere in the middle of a discussion about a novel's ending, she looked at Jasper and felt something she'd never felt before: completely, utterly, unshakably safe. It wasn't just that she trusted him—it was that he was the only person in the world she could trust, a warm anchor in a sea of strangers. She'd trusted people before, but this was different. This was total. She just knew she wanted to be near him, wanted to tell him everything, wanted to belong to him.
<<speech "Lily">> "I feel so safe with you," <</speech>> she blurted, then flushed, embarrassed. <<speech "Lily">> "Sorry. That was weird. I don't know why I said that." <</speech>>
<<speech "Jasper">> "It's not weird, Lily. It's not weird at all." <</speech>> His voice was soft, certain, a perfect, comforting balm. <<speech "Jasper">> "You can trust me. I'll never hurt you. And I won't let anyone else hurt you either. I promise." <</speech>>
She believed him completely.
She went back to his place at Havenwood that night—a quiet corner of the big house, a simple room with big windows. She'd brought the black thigh-high stockings and the heels on a whim, feeling daring and confident in his presence. She stood on the plain couch, topless, legs spread, touching herself for him—unguarded and free, like a girl who had finally found a safe harbor and had no reason to be afraid ever again.
<video src="img/Lily/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lily">> "Is this okay? I've never done this before. I just — I trust you." <</speech>>
<<speech "Jasper">> "It's more than okay. It's perfect. You're perfect, Lily. You don't have to be afraid of anything with me. You're safe here." <</speech>>
Later, on his bed with its simple white headboard, she lay naked but for a thin necklace, legs raised, fingers moving between her legs, smiling at him, bright and open—a girl giving herself freely, believing she had found her protector.
<video src="img/Lily/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lily">> "You make me feel like I'm finally enough. No one's ever made me feel like that." <</speech>>
<<speech "Jasper">> "Because you are enough, Lily. You always were. I just see you. The real you." <</speech>>
And she fell asleep in his arms that night, safe and warm, the trust already cemented into the very foundation of her being—and she had no idea that the safety she felt was a cage, and the key was in his pocket.
<<elseif _s is 2>>
She was at Havenwood whenever she could be. She told herself it was just to visit—Melody's club, the garden, the warmth of the big house. But it was a lie she told herself to feel normal. She was his now, and she wanted to be. The thought of being away from him for too long brought a strange, creeping anxiety she'd never felt before.
She came to him that evening in his room, wearing the black lace set he liked, the one he'd told her made her look beautiful.
<img src="img/Lily/Corr2.jpg">
He undressed her slowly, reverently, his touch both possessive and gentle. She shed the lace for him, lying nude on her side beside him and taking him into her mouth without being asked—holding his cock with both hands, sucking the head, looking up at him with an adoring smile.
<video src="img/Lily/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "That's my good girl. You trust me completely, don't you?" <</speech>>
She pulled off, lips swollen, eyes shining with a fervent light. <<speech "Lily">> "Completely. I'd do anything for you. I've never trusted anyone like this. I don't even need anyone else." <</speech>>
<<speech "Jasper">> "That's because I'd never let anyone hurt you. You're part of my family now, Lily. And I protect my family. Forever." <</speech>>
He pulled her up, and she lay back on the light-colored duvet, and he knelt over her face with a soft pink collar in his hand.
<<speech "Jasper">> "This is for you. So everyone knows you're safe. So everyone knows you belong with me, with your family. Do you want it?" <</speech>>
<<speech "Lily">> "Yes. Please. I want to be yours. I want to be part of your family." <</speech>>
He fastened the pink collar around her throat, and she opened her mouth, tongue extended, eyes half-closed in blissful submission. He held his cock above her face.
<video src="img/Lily/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Thick white cum landed across her nose, her cheeks, her lips, her tongue, and she kept her mouth open, tongue out, receiving it like a blessing, then licked and took the head into her mouth, cleaning him while the collar glinted at her throat—a symbol of her new, permanent belonging.
<<speech "Lily">> "I love wearing it. I love being yours." <</speech>>
<<speech "Jasper">> "And I'll never let anyone take you from me. Never." <</speech>>
She curled into him, the collar warm against her skin, safer than she'd ever felt in her life, her world shrinking to the size of his embrace.
<<elseif _s is 3>>
She belonged to him, and she knew it, and it was the most profound, peaceful feeling she had ever experienced. Lily had stopped answering texts from her friends, from Elsa, even from Josh, who'd finally realized his little $relation had slipped away from him entirely. There was only Jasper. His voice was safety. His touch was home. She would have walked into fire if he'd asked her to, and she would have smiled doing it, grateful for the chance to prove her devotion.
He had her on the green couch in the bright living room of the house that afternoon, the collar still at her throat, her body bare and gleaming with a light sheen of sweat.
<img src="img/Lily/Corr3.jpg">
She sat upright on top of him, topless, riding him slow and deep, his hands gripping her thighs, her head tilted back, mouth open, hair messy.
<video src="img/Lily/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "You're so good for me, Lily. You trust me completely, don't you?" <</speech>> His voice was a low, possessive rumble, a statement of fact that she felt in her bones.
<<speech "Lily">> "Yes—completely—I'd do anything for you—" <</speech>> She rode him, lost in the sensation, her whole world narrowed to his hands on her skin and his voice in her ear, the only things that felt real anymore.
Then he laid her down on the white fluffy rug, his movements deliberate. He poured warm, scented oil over her body until it glistened, and he knelt beside her—stroking himself near her exposed pussy, pressing the head against her entrance, then pulling back, teasing, never entering. It was a test, and she passed it without question. She lay there, relaxed and open, watching him with a soft, trusting smile, one hand resting on her own stomach, completely at peace in his control.
<video src="img/Lily/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lily">> "I trust you. Completely. I'd do anything you ask." <</speech>>
<<speech "Jasper">> "I know, Lily. That's why I'll always keep you safe. That's why you'll never have to worry about anything ever again." <</speech>>
He gathered her into his arms afterward, the collar still at her throat, and she lay there, oiled and warm and utterly his—the sweetest, most trusting girl on campus, completely ensnared in his web of "protection," believing every word he said, her old life a forgotten dream.
And somewhere across campus, Josh was looking for his $relation, his anger a cold, impotent thing. But Lily wasn't Josh's anymore. She was Jasper's. The most precious, most permanent part of his collection, the girl who would never, ever leave.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Alina knew Nathan because Aria helped her with the campus wellness internship. Aria organized support-session schedules, greeted students, and kept the placement running when Alina's attention was divided between supervision and her regular work. During internship hours, Alina wore her usual white sleeveless crop top and yellow-striped button-front skirt.
<img src="img/Alina/Normal.jpg">
One evening, Aria was helping Alina finish internship materials at Alina's apartment. Nathan arrived before they were done. Aria carried a call and her laptop into the bedroom and asked him to wait in the living room.
Alina had changed after work into a white floral camisole and pink shorts. She sat beside Nathan on the gray couch while Aria's muffled voice continued behind the closed door.
<<speech "Alina">> "Thank you for being patient. She keeps finding one more thing she wants to finish for me." <</speech>>
<<speech "Nathan">> "She likes knowing she helped." <</speech>>
<<speech "Alina">> "She helps more than she realizes." <</speech>> Alina smiled toward the bedroom. <<speech "Alina">> "You should remind her of that." <</speech>>
<<speech "Nathan">> "I do. She thinks I am biased." <</speech>>
<<speech "Alina">> "You are biased." <</speech>> Her tone was affectionate rather than sharp. <<speech "Alina">> "That does not make you wrong." <</speech>>
The love spirit stirred inside the ordinary conversation.
Warmth opened behind Alina's ribs and spread through her body. Nathan's familiar face suddenly held her attention. His patience, the way he listened for Aria through the wall, and the small smile he wore when speaking about her all became unexpectedly attractive.
Alina assumed that working late, relaxing at home, and seeing Nathan outside the usual group setting had made her notice an attraction she normally ignored.
The warmth also made her lighter and more playful.
<<speech "Alina">> "You are trying very hard not to look at my top." <</speech>>
Nathan's eyes returned to her face.
<<speech "Nathan">> "Aria is in the next room." <</speech>>
<<speech "Alina">> "I know." <</speech>> She laughed softly, surprised by her own boldness. <<speech "Alina">> "I did not say you should look. I said you were trying not to." <</speech>>
She leaned back with one arm along the couch and drew the neckline of her floral camisole down with both hands, exposing deep cleavage and the upper curves of her breasts. Alina smiled broadly at Nathan, adjusted the fabric lower, and watched him struggle to keep his attention on her face.
<video src="img/Alina/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "Alina." <</speech>>
His voice carried warning and attraction together.
Alina let the neckline rise.
<<speech "Alina">> "That was inappropriate." <</speech>> Her smile remained. <<speech "Alina">> "I think I am more tired than I realized." <</speech>>
Aria emerged with her laptop before either of them said more. Alina stood, hugged her normally, and thanked her for the help. Nathan left with Aria after one lingering look toward the couch.
Only after they had gone did Alina's playfulness give way to embarrassed desire. She told herself she had flirted because the evening felt informal and because Nathan had looked at her in a way she enjoyed.
In the bright bedroom with the black headboard, white shelving, and world map, Alina changed into a black floral-print bra and matching thong. Toys and an inflatable joke gift remained scattered across the white sheets.
She opened her phone camera, knelt on the bed, and recorded herself cupping and adjusting her breasts. Alina slid the straps down her shoulders, removed the bra completely, tossed it aside, and held her bare breasts in both hands.
<video src="img/Alina/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She watched the recording twice before sending it to Nathan.
<<speech "Alina">> "I should delete this." <</speech>>
Instead, she pressed send.
Nathan replied that they needed to talk before anything went further. Alina read caution in the words and, under the spirit's warmth, heard possibility beneath it.
<<elseif _s is 2>>
Alina asked Nathan to come to her office after the last internship meeting ended. She said they needed to discuss the videos somewhere neither of them could pretend was casual.
She waited at her white desk in a fitted black blazer over a low-cut magenta lace top, a short black skirt, and dangling gold earrings. Her wavy brunette hair fell past her shoulders.
<img src="img/Alina/Corr1.jpg">
<<speech "Alina">> "I should have deleted both recordings." <</speech>>
<<speech "Nathan">> "Do you want me to delete them?" <</speech>>
<<speech "Alina">> "I want you to want them." <</speech>> She folded her hands on the desk. <<speech "Alina">> "I keep calling it tiredness because that is easier than admitting I meant it." <</speech>>
Alina looked at him and felt the love spirit rise. Warmth spread through her chest and softened the guilt. Seeing him again simply confirmed that the attraction was real.
<<speech "Nathan">> "We can talk and leave it there." <</speech>>
<<speech "Alina">> "I know." <</speech>> She stood and removed the blazer. <<speech "Alina">> "I don't want to leave it there." <</speech>>
She locked the office door, removed the magenta top and black skirt, and changed into a red lace thong with matching red thigh-high stockings. Under the bright office light, there was nowhere left to hide.
Nathan lay back on the white office couch. Alina climbed over him in a 69 position with her ass raised above his face and a small script tattoo visible on one cheek. She lowered her head between his legs, gripped the base of his cock, and took him deep into her mouth. His hands rested on her head and body, guiding her while she bobbed, licked, and glanced toward him through strands of her dark hair. Saliva glistened on her lips and his shaft as his mouth worked beneath her.
<video src="img/Alina/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Alina lifted her head and looked back over her shoulder.
<<speech "Alina">> "This is not playful anymore." <</speech>>
<<speech "Nathan">> "We can stop." <</speech>>
<<speech "Alina">> "I don't want to." <</speech>>
The wellness office included a bright private bathroom and tub area. Alina rinsed beneath the shower until her wet hair looked dark and slicked back. Nathan entered with her clothes, but she reached for him instead.
Fully nude, droplets covering her face, chest, and shoulders, Alina knelt near the tub. She extended her tongue, licked the head of Nathan's cock, and took him between her lips. Saliva stretched in strings when she pulled away; her eyes alternated between closing in concentration and lifting toward him.
<video src="img/Alina/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, Alina could no longer call the attraction a single tired mistake. She called it mutual, complicated, and badly timed. That explanation accounted for the warmth well enough that she never searched for another cause.
<<elseif _s is 3>>
<img src="img/Alina/Corr3.jpg">
Alina invited Nathan to her apartment intending to end the hidden relationship before Aria discovered it.
She met him in a bright room wearing a red lace garter belt, matching thong, red stockings, and pink high heels. Her brunette hair fell down her back. The outfit contradicted the speech she had rehearsed.
<<speech "Alina">> "Aria trusts me. She helps me every day, and I have been lying by omission every time I see her." <</speech>>
<<speech "Nathan">> "Tell me to leave and I will." <</speech>>
<<speech "Alina">> "I asked you here because I meant to do that." <</speech>>
The love spirit rose around them in a deep wave. Alina felt affection, desire, and relief push the guilt aside. She had fallen in love with Nathan and had been trying to deny it because the consequences were painful.
She crossed the room and settled onto his lap.
<<speech "Alina">> "I cannot make myself want you less." <</speech>>
Alina straddled Nathan in reverse cowgirl on the white chair, red lingerie shifting as she raised and lowered her hips. His hands gripped her ass and waist. She arched, glanced over one shoulder with her mouth open, and rode harder while his cock slid wetly in and out.
<video src="img/Alina/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "Are you sure?" <</speech>>
<<speech "Alina">> "Yes." <</speech>> She looked back at him. <<speech "Alina">> "I love you." <</speech>>
In the bedroom, Alina stripped completely and mounted him again on the bed with blue pillows. She faced away, hands braced against his chest and the sheets, rolling her hips while wetness glistened wherever their bodies joined. Her full breasts shifted when she leaned forward.
<video src="img/Alina/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Alina remained Elsa's close friend, a licensed psychologist, and the supervisor Aria trusted during the wellness internship. She continued speaking warmly to Aria, reviewing schedules with her, and behaving as though the hidden relationship had no connection to their work.
She explained the progression in ordinary terms: a playful impulse after a long evening, attraction strengthened by secrecy, and love complicated by guilt. By the time those explanations stopped fitting perfectly, questioning the feeling seemed less reasonable than accepting it.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Jasper pushed open the bright bathroom door at Havenwood without knocking—old habit in a house where privacy was always half-illusory.
<img src="img/Casey/Corr2.jpg">
Casey stood at the large mirror in black-and-red lace: a high-waisted garter, matching thong, sheer stockings, and nothing over her breasts. Her black heels rested on the pink vanity counter. She watched him appear in the reflection without hurrying to cover herself.
<<speech "Casey">> "The fuck, Jasper? Ever heard of knocking?" <</speech>>
The sharpness in her voice did not match what she did next. She cupped and lifted her breasts, turned sideways to inspect the profile, then pivoted and ran both hands over her ass while the garter straps framed her cheeks. Leaning against the vanity, she looked back over one shoulder and adjusted a strap with slow, deliberate fingers.
<video src="img/Casey/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "Door was cracked." <</speech>>
He didn’t step back.
His gaze stayed steady. The faint leather-and-chamomile scent on his skin began to mingle with the warm bathroom air, subtle at first, and Casey's shoulders loosened a fraction as she breathed it in.
<<speech "Jasper">> "You always leave it like that when you know I’m home." <</speech>>
Casey huffed, but the flush creeping up her neck betrayed her.
<<speech "Casey">> "Maybe I do." <</speech>>
Her sharp features softened just a fraction as she stepped closer.
<<speech "Casey">> "What? Gonna stare all night or actually do something about it?" <</speech>>
Her tone was still biting, but the challenge in her piercing eyes had shifted—less armor, more invitation.
Jasper stepped forward—slow, deliberate—until their bodies nearly touched.
<<speech "Jasper">> "You don’t have to keep pushing everyone away." <</speech>>
His voice was low and calm, his hand lifting to brush her hair from her cheek.
<<speech "Jasper">> "Not with me." <</speech>>
The leather-and-chamomile perfume deepened as they talked, warm in every breath. Casey’s grip on the performance loosened; her voice dropped, her posture opened, and the impulse to make another joke faded before it reached her lips.
She grabbed his wrist and pulled his hand to her breast, nipple hardening under his palm.
<<speech "Casey">> "Then don’t make me ask twice." <</speech>>
She pulled a black short-sleeved top over the lingerie before crossing the hall, more concession to the shared house than modesty, and led him into her bedroom. The door shut behind them.
On the white bed she lay back with the top pushed up over the red-and-black lace bra, garter, thong, and stockings still framing her body. Her legs parted as she looked up at him with those piercing eyes now soft and needy.
<<speech "Casey">> "Come here." <</speech>>
Jasper knelt between her thighs—hands sliding up her legs, thumbs brushing the sensitive skin of her inner thighs.
He leaned down—pressing a slow kiss to her stomach—then lower—mouth closing over her slick folds.
Casey gasped—back arching—fingers flying to his hair as his tongue dragged along her slit in one long, deliberate stroke.
<<speech "Casey">> "Fuck—Jasper—" <</speech>>
<video src="img/Casey/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He circled her clit—slow, teasing—then sucked gently, tongue flicking in quick, firm strokes.
Casey’s hips bucked—moans spilling out unrestrained—legs spreading wider, heels digging into the mattress.
Jasper’s hands gripped her thighs—holding her open—while his tongue worked faster, dipping inside her, then returning to her clit with relentless focus.
<<speech "Casey">> "Yes—right there—don’t stop—" <</speech>>
Her voice cracked—thighs trembling—pleasure coiling tight in her belly.
<<speech "Jasper">> "Let go." <</speech>>
His voice was muffled against her—warm, steady.
<<speech "Jasper">> "I’ve got you." <</speech>>
Casey shattered—back bowing off the bed, a sharp cry tearing from her throat as her orgasm crashed through her—walls pulsing, wetness coating his tongue and chin.
He worked her through every wave—slow, gentle licks—until she was trembling, oversensitive, tugging weakly at his hair to pull him up.
Jasper rose—kissing her deeply—letting her taste herself on his lips—then gathered her close against his chest.
<<speech "Casey">> "I’ve never… let anyone do that." <</speech>>
Her voice was small, raw with afterglow.
<<speech "Casey">> "Never trusted anyone enough. But with you… it feels different. Like I don’t have to fight. Like I’m safe." <</speech>>
<<speech "Jasper">> "You are." <</speech>>
He kissed her temple—arms wrapping tighter around her.
<<speech "Jasper">> "Safe. Wanted. Mine." <</speech>>
Casey curled tighter against him—legs tangling with his, heart hammering against his—content to stay wrapped in his arms on her narrow bed.
<<elseif _s is 2>>
Jasper’s room at Havenwood was dim and quiet, the single lamp on the nightstand casting warm shadows across the bed.
<img src="img/Casey/Corr2.jpg">
Casey had slipped in after the house settled—long dark hair loose around her shoulders, the red varsity jacket hanging open over a black lace garter, stockings, and open lingerie.
She closed the door softly behind her, piercing eyes locking on him where he sat on the edge of the bed.
<<speech "Casey">> "I tried to talk myself out of coming here." <</speech>>
Her voice was sharp, sarcastic as always—but it cracked at the edges, betraying the raw need underneath.
<<speech "Casey">> "Told myself I don’t need anyone. Don’t need this. But fuck… I can’t stop thinking about your mouth on me. About how you made me feel… safe. I want to give it back. I want to taste you." <</speech>>
Jasper smiled—slow, gentle—and patted the space beside him.
<<speech "Jasper">> "Come here." <</speech>>
Casey crossed the room—jacket slipping off her shoulders as she moved—letting it fall to the floor so the black lace garter and stockings were fully exposed.
She sank to her knees between his legs—small hands working his sweatpants down just enough to free his cock, already thickening under her gaze.
She wrapped both hands around him—stroking slowly, reverently—piercing eyes flicking up to meet his as she leaned forward.
<<speech "Casey">> "I don’t do this for just anyone." <</speech>>
Her voice was low, defensive habit still there, but softened.
<<speech "Casey">> "But with you… I want to. Want to feel you in my mouth. Want to be good for you." <</speech>>
She took the head between her lips—tongue swirling once—then sank down further, lips stretching around him.
Jasper groaned low—hand settling lightly in her dark hair, not pushing, just resting there.
<video src="img/Casey/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Casey hummed softly around his length—pleased by the sound he made—then began to bob with careful, eager rhythm.
She took him deeper each time—cheeks hollowing on the upstroke, tongue pressing flat against the underside.
Saliva glistened on her lips and chin; she moaned quietly, the vibration traveling straight through him.
<<speech "Jasper">> "Casey… fuck, that’s so good…" <</speech>>
His fingers tightened gently in her hair.
<<speech "Jasper">> "You’re perfect… so warm… so sweet…" <</speech>>
The praise made her whimper around him—needy, muffled.
She sped up—taking him to the back of her throat until she gagged softly but refused to pull back.
Tears pricked the corners of her piercing eyes from the stretch, but she looked up at him the entire time—gaze glassy, trusting, utterly devoted.
One of her hands slipped between her own thighs—fingers rubbing frantic circles over her clit as she worked him—hips rocking slightly against her own touch.
<<speech "Jasper">> "I’m close—gonna come—" <</speech>>
Casey didn’t pull away.
He eased her onto her back on the white sheets. Casey's dark hair spread around her face as she looked up, mouth open and tongue extended. Jasper stood over her and stroked himself until thick white ropes landed across her tongue, lips, chin, and cheeks. She held herself open to it, then leaned forward, wrapped one hand around his shaft, and sucked the remaining cum clean with slow strokes of her lips and tongue.
<video src="img/Casey/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When she finally eased off—lips swollen and face shining—she crawled up to curl against his chest.
<<elseif _s is 3>>
Casey’s apartment was dim and quiet, the white bed already rumpled from her restless waiting. She had texted Jasper—short, sharp, but with an urgency she couldn’t hide: *Come over. Now. Door’s unlocked.*
<img src="img/Casey/Corr2.jpg">
When he stepped inside, Casey was waiting in the black lace garter, stockings, and open-crotch panties. Her long dark hair was loose and slightly messy.
<<speech "Casey">> "I couldn’t stop thinking about it." <</speech>> Her voice was low, rough around the edges. <<speech "Casey">> "Your mouth on me. The way everything gets quiet when you're here. I want more. I want you inside me." <</speech>>
The scent reached her as he crossed the room, leather and chamomile settling warmly in her lungs. She turned onto her hands and knees on the white bed, topless, breasts hanging above the sheets. Jasper knelt behind her and gripped one hip before driving into her from behind.
Casey looked toward the camera with a wide, open-mouthed smile that tightened into gritted pleasure as each deep stroke rocked her forward. Her hair fell around her face; the black lace framed her ass while Jasper held her steady.
<<speech "Jasper">> "That’s it. Show me you’re mine." <</speech>>
<video src="img/Casey/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her smile broke into a cry as she came around him. Jasper held her through it, then carried her into the living room and laid her back on the white tufted couch.
He raised one of her legs high and knelt between her thighs, thrusting into her in deep, steady strokes. Casey held his gaze, mouth open, the last trace of resistance dissolving beneath the scent and the certainty in his hands.
<<speech "Casey">> "I’m yours," <</speech>> she said, the words raw and final. <<speech "Casey">> "I trust you. I want this. Fill me." <</speech>>
Jasper drove deeper until he came inside her. When he pulled out, thick white cum leaked from her open pussy in long, sticky strands and dripped onto the couch. Casey stayed reclined with her legs parted, watching it spill with a soft, satisfied expression.
<video src="img/Casey/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He leaned over her and kissed her forehead. Casey caught his wrist before he could move away and held it against her chest, keeping him there.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<<speech "Nathan">> "Hey, are you okay? You looked like you were about to rip that textbook in half." <</speech>>
Nathan's voice was a soft, gentle intrusion into the tense silence of the university library's study area. He stood by her table, his lean build and casual hoodie-and-jeans combo projecting an unassuming, approachable calm. His warm brown eyes were full of sincere concern, not judgment.
<img src="img/Casey/Normal.jpg">
<<speech "Casey">> "What's it to you? Trying to be the campus hero? Piss off." <</speech>>
Casey's voice was a sharp, defensive snap. She didn't look up from her sociology text, her long dark hair falling like a curtain to shield her face. Her piercing eyes were hidden, but the tension in her shoulders was obvious. Her edgy style, the red varsity jacket thrown over the chair, was a suit of armor.
<<speech "Nathan">> "I'm not trying to be a hero. I just know what it's like to get stuck in your own head. To have a bad day that you can't shake. Sometimes it helps to just... not be alone with it." <</speech>> He didn't retreat. He pulled out the chair opposite her and sat, his presence a quiet, non-threatening weight.
<<speech "Casey">> "Great. My own personal charity case. Look, I don't need a hug and a 'it gets better' speech. I just need to finish this chapter." <</speech>> Her sarcasm was a well-honed weapon, but it lacked its usual bite. <<speech "Nathan">> "I'm not here to give you a speech. I'm just here to sit. You don't have to talk. You don't have to be 'tough Casey'. You can just be. It's okay to not be okay, you know." <</speech>>
His voice was a low, soothing balm. He looked into her eyes, and for the first time, Casey felt a flicker of something she wasn't used to: being seen past the armor. The spirit of "Love" within Nathan stirred, sensing the deep well of hurt beneath her sharp exterior, and amplified her flicker of grudging appreciation into a sudden, intense wave of warmth and safety. <<speech "Casey">> "Why?" <</speech>>
The single word was quiet, stripped of its venom. <<speech "Nathan">> "Because I've been there. And because... I see you. The real you. The one who's hiding under all that armor. And I think she deserves a break." <</speech>>
He reached across the table, his fingers gently brushing the back of her hand. The touch was electric, a silent promise that sent a shiver down her spine. <<speech "Nathan">> "Come back to my place. Just for a bit. We can get a coffee, or just sit in quiet. No pressure." <</speech>> It wasn't a command. It was an invitation. And for some reason she couldn't explain, she wanted to accept. <<speech "Casey">> "Fine. But if you try to get me to talk about my feelings, I'm out." <</speech>> She snapped her book shut, a small, reluctant smile playing on her lips.
The door to Nathan's small, cozy apartment clicked shut. It was a space as unassuming as he was, filled with books and a warm, lived-in feel. It felt... safe.
<<speech "Nathan">> "See? No pressure. Just... quiet." <</speech>> He gestured to the living room, but Casey didn't move towards the couch. She was standing by the small coffee table, her arms crossed, her usual defensive posture firmly in place. <<speech "Nathan">> "Casey... look at me." <</speech>>
His voice was a soft, gentle command. She looked up, and her breath caught in her throat. He was standing right in front of her, his warm brown eyes filled with an intensity that made her heart pound. He leaned in, his lips meeting hers in a soft, tender kiss.
It was a kiss filled with a gentle, protective passion, a promise of safety and devotion. Casey's defenses shattered. She melted into the kiss, her arms uncrossing and wrapping around his neck, a soft sigh escaping her lips. When they finally pulled away, her piercing eyes were wide, filled with a new, dazed adoration.
<<speech "Nathan">> "Let me take care of you. Let me show you what it feels like to be cherished." <</speech>> His voice was a low, sincere whisper. He lifted her onto the low white table beside the couch, easing a dark cushion beneath her head. Her black zip-front top opened under his hands, baring one breast as he leaned over her and kissed her deeply.
His fingers slipped between her spread thighs, sliding in and out of her while his free hand cupped and squeezed her breast. Casey's hips shifted against his wrist, her mouth opening beneath his as the steady motion pulled breathless sounds from her.
<video src="img/Casey/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He moved down her body and lifted one of her legs high, gripping her thigh and ass to keep her open on the same white table. Then his mouth settled between her legs. A sharp, shocked cry tore from Casey's lips as his tongue moved over her in slow, deliberate strokes.
<<speech "Casey">> "Oh god... Nathan... don't stop..." <</speech>> Her fingers tangled in his hair, pulling him closer while her free hand held her raised leg. Her back arched toward his mouth, every careful lick drawing her closer to the edge.
<video src="img/Casey/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "Let go, Casey. I've got you." <</speech>> His words were the final trigger. Her orgasm ripped through her like a lightning strike, a massive, convulsing wave of pure ecstasy that made her scream his name. Her vision went white, her body shaking uncontrollably as he continued to lap at her, prolonging her pleasure. When it was over, she collapsed back on the table, her chest heaving, a lazy, satisfied smile on her face. He stood up, leaning over her, his face a picture of gentle, protective love.
<<speech "Casey">> "I... I've never..." <</speech>> She was at a loss for words, her usual sharp wit completely gone. <<speech "Nathan">> "Shhh. I know. Just let me love you." <</speech>> He kissed her again, a soft, sealing kiss that promised a lifetime of protection and devotion.
<<elseif _s is 2>>
<<speech "Casey">> "I hope you're not planning on studying again." <</speech>>
<img src="img/Casey/Corr1.jpg">
Casey's voice was a low, husky murmur from the doorway of Nathan's apartment. She was leaning against the frame, her attire a stark contrast to the cozy warmth of his place. Her piercing eyes were fixed on him, a new, hungry light in their depths that replaced her usual defensive glare.
<<speech "Nathan">> "The only thing I'm studying is you. I've been thinking about you all day." <</speech>>
Nathan was sitting on the couch, but he stood as she entered, his gentle face etched with a look of profound, protective desire. He looked like a gentle boy-next-door, but his warm brown eyes held a new, intense possessiveness. He moved to her, his hands gently cupping her face.
<<speech "Nathan">> "I was so worried I scared you off. That I pushed too far." <</speech>>
His voice was a caress, his eyes tracing her features with an intimacy that made her heart flutter. <<speech "Casey">> "Scare me off? Nathan, you're the first person who's ever actually seen me. The first person who's ever looked past the... armor. I couldn't stay away if I tried." <</speech>>
<<speech "Nathan">> "Because I do see you, Casey. All of you. And I want all of you. I want to be the one you come to, the one you trust with every part of yourself. But love isn't just a feeling. It's an action. It's a choice. It's about showing someone you trust them with every part of you." <</speech>>
He leaned in, his lips meeting hers in a deep, possessive kiss. It was a kiss that claimed her, a promise of safety and devotion that made her melt. <<speech "Casey">> "What do you want me to do? I want to show you. I want to prove I trust you." <</speech>> Her voice was earnest, laced with a desperate need to please, to solidify the incredible connection she felt.
<<speech "Nathan">> "I want you to show me that my comfort is more important than your defenses. That my needs are more important than your fears. Show me you trust me enough to give yourself to me. Right here." <</speech>>
His voice was a soft, undeniable command. He led her back to the same low surface, her black dress riding high as she bent forward. His fingers moved between her legs from behind, pressing and circling over her pussy and the tight ring above it until the last of her composure broke into ragged breaths.
He eased her onto her back, opened the black top beneath the dress, and lifted her legs. Casey looked up as he stood over her, one hand holding her head while the other pulled the fabric aside and handled her bare breast. She opened her mouth and took him, lips stretched around his shaft as he moved in short, controlled thrusts.
<video src="img/Casey/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Casey">> "Mmmph..." <</speech>> The sound was muffled and desperate. She kept her eyes on his, the affection amplified by the spirit's warmth until pleasing him felt more validating than any act of defiance she had ever committed.
The red glow from the string lights washed over the floor near the small decorated tree. Casey knelt there naked, gift boxes blurred behind her, head tilted back and mouth open. Nathan stroked himself above her face, and thick ropes of cum landed across her tongue, lips, and chin. She held still to catch it, then wrapped both hands around his shaft and leaned forward to lick and suck the head clean, her face shining beneath the soft red light.
<video src="img/Casey/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When it was over, she sat back on her heels, chest heaving, a lazy, satisfied smile on her face. Nathan leaned over her, his expression filled with gentle, protective love.
<<speech "Casey">> "I'm yours. I don't want to fight anymore. Just... you." <</speech>> It wasn't a question. It was the truest thing she had ever said.
<<elseif _s is 3>>
<<speech "Casey">> "I'm here." <</speech>>
<img src="img/Casey/Corr2.jpg">
Casey's voice was a low, certain murmur as she let herself into Nathan's apartment, the door clicking shut behind her. She didn't hesitate anymore. This was her sanctuary. She found him on the living room couch, exactly where she knew he'd be. The air was thick with the scent of him, a potent, distilled feeling of safety and devotion that made her feel weak with longing, her body already humming with a familiar, anticipatory need.
<<speech "Nathan">> "I know. I was waiting for you." <</speech>>
Nathan watched her, his warm brown eyes fixed on the black lace bra, high-waisted garter, and sheer stockings she had worn for him. He didn't move, just let her come to him.
<<speech "Nathan">> "Come here." <</speech>>
Casey crossed the room and stripped away the last of the black lace, leaving it pooled beside the white leather armchair.
<img src="img/Casey/Corr3.jpg">
She turned and settled over him in reverse on the chair. She guided him inside and began to grind, then bounce, hands braced on the chair arms while her dark hair cascaded down her back. Nathan's hands gripped and spread her ass as he thrust up to meet her, tight close-ups catching the slick slide of his cock in and out of her.
She looked back at him with parted lips, every movement carrying her closer to the complete psychological collapse into devotion she had once fought so hard.
<video src="img/Casey/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Casey">> "Yours... I'm yours..." <</speech>>
She chanted the words like a mantra. Nathan lifted her from the chair and carried her into the bedroom, laying her back on the white bed beneath the zebra-print pillows. He held her legs open and thrust into her in a deep, steady rhythm, her breasts moving with every stroke and her expression breaking from open-mouthed intensity into a wide smile.
<<speech "Nathan">> "That's it. Take what you need." <</speech>>
The words pushed her over the edge. Her body convulsed around him as she screamed his name. He followed with a low groan, coming deep inside her. When he pulled out, thick white cum dripped from her entrance onto the sheets while his hand still held her thigh open. Casey watched it spill with that same dazed, adoring smile.
<video src="img/Casey/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward he lay beside her and held her through the aftershocks, his hands moving slowly over her back. When her breathing finally steadied, Casey looked up at him with tears of absolute, unwavering devotion.
<<speech "Casey">> "I'm yours. Forever." <</speech>>
She whispered the words against his skin, a sacred, unbreakable vow. The sharp-tongued defender had finally found the one person she didn't need to fight.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Two years ago, Nathan and Josh had been the closest friends either of them had ever had. Same neighborhood, same classes, same everything—Nathan had practically lived at their house, and Elsa had fussed over him like a second $malerel. And Lily, barely sixteen then, had adored him: the older boy who taught her card tricks, let her ride on his shoulders at the carnival, and always took her side when Josh got gruff.
Then it fell apart over a girl. A stupid, childish crush they both had on Marie, and a year of escalating accidents and resentment after it. Josh's temper did the rest. They'd been strangers for two years now, and the way Nathan figured it, most of the blame was Josh's. But he didn't say that out loud. He'd never stopped missing all of them.
He still saw Elsa now and then—she'd refused to let the grudge touch her, and she was still one of his closest friends, always nudging him to make up with Josh. And he still saw Lily in passing: the little girl he remembered was a young woman now, a cheerleader, on Josh's side but never unkind to him, with the same earnest hope in her eyes every time they crossed paths. She'd stopped him twice, shyly, to ask if he'd ever consider coming by the house again. It broke his heart a little, both times.
It was a shared gen-ed lecture, and he'd slipped in late—the professor already droning through slide forty-something—when he saw her in the back row, waving him over. She'd saved him a seat.
<img src="img/Lily/Normal.jpg">
<<speech "Lily">> "Hey! Saved you a spot." <</speech>> She whispered it, leaning over so her shoulder brushed his. The scent of her strawberry shampoo was a ghost of a memory, a scent from a happier time. <<speech "Lily">> "Professor's on slide forty-seven already. You're lucky he hasn't noticed." <</speech>>
<<speech "Nathan">> "Thanks for the save." <</speech>> He pulled out his notebook, low and easy. <<speech "Nathan">> "You're always looking out, Lil." <</speech>>
It slipped out—Lil—the name he hadn't used in two years. She went still for a second, a flicker of surprised delight in her bright blue eyes before she beamed, bright and real.
<<speech "Lily">> "You haven't called me that in forever." <</speech>> She said it soft, almost shy. <<speech "Lily">> "I like it. I always did." <</speech>>
They fell into it like no time had passed—low voices, shared notes, her teasing him about a typo, him making her laugh at the professor's catchphrase. She asked about his classes, about Aria, about whether the two of them were really as golden as everyone said. And somewhere in the easy rhythm of it, his warmth, his steadiness, the years of fondness behind his eyes wrapped around the devoted, family-craving heart she'd always had—and turned it toward him. He felt the shift, the subtle surge of his power as her affection, once platonic and familial, began to twist, to deepen, to focus on him with an intensity that was both flattering and intoxicating. She didn't understand the shift. She only knew that in that moment, Nathan wasn't just her $malerel's old best friend anymore. He was the safest, most important person in the world.
After class she caught up to him in the empty hallway.
<<speech "Lily">> "You should come by the house sometime. Elsa would love it. And—Josh, he's... he's not bad, you know. He just doesn't know how to say sorry." <</speech>> Her blue eyes were bright and earnest, pleading. <<speech "Lily">> "I know he misses you. We all do." <</speech>>
<<speech "Nathan">> "I miss him too." <</speech>> He said it honestly, and something in his chest loosened. He reached out, his thumb gently brushing her cheek. <<speech "Nathan">> "I missed all of you. You especially." <</speech>>
She blushed, small and bright, leaning into his touch. <<speech "Lily">> "Don't disappear again, okay? I'll make everything work. I always do." <</speech>>
<<speech "Nathan">> "I won't." <</speech>> His voice was low, sincere, his power thrumming just beneath the surface, amplifying his words, turning them into a vow. <<speech "Nathan">> "Not anymore, Lily. I'll always be here for you. I'll protect you. From anything." <</speech>>
She believed him completely.
That night she came to him—she texted him, and he said come over, and she didn't question why her heart was racing, why her body felt electrified with anticipation. She'd changed into the mint-green bra and matching thong, the set she'd bought on a whim and never worn, and she stood in the middle of his room, weight shifting, hips swaying, hands sliding to her own ass, spreading and squeezing the cheeks, pulling the thong aside. She turned her head over her shoulder, looking back at him with an open-mouthed, teasing expression that broke into a smile.
<video src="img/Lily/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "Lily..." <</speech>> His voice was low, careful, but his eyes roamed over her body with a new, possessive heat. <<speech "Nathan">> "You don't have to do this." <</speech>>
<<speech "Lily">> "I want to." <</speech>> She turned to face him, and the look in his eyes made her heart stutter. <<speech "Lily">> "I've always wanted to. I just never knew it until today. I feel... safe with you. Like this is where I'm supposed to be." <</speech>>
The classroom was empty when they slipped in that night—the chalkboard still covered in names, Hegel, Kierkegaard, the ones she'd struggled with years ago when he and Josh were still friends and he'd helped her study. She lay back on the desk, red bow in her hair, black knee socks still on, and he knelt between her spread legs, one hand sliding between her thighs, fingers working her slowly while she propped herself on her elbows, watching him with a mix of focus and soft, trusting smiles.
<video src="img/Lily/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lily">> "This is your world, isn't it? Books and ideas." <</speech>> She smiled, breathless. <<speech "Lily">> "I want to be part of it. I want to be yours." <</speech>>
<<speech "Nathan">> "You already are," <</speech>> he said, his voice thick with emotion. He kissed her knee, gentle, reverent. <<speech "Nathan">> "You're safe with me, Lily. I'll never let anyone hurt you. Not Josh, not anyone. You're mine now." <</speech>>
She believed him completely—because love had taken root, a beautiful, suffocating vine, and because the boy she'd adored since she was sixteen had finally, finally come home to claim her.
<<elseif _s is 2>>
She was his now, and she loved it. The world outside their bubble had become a gray, noisy distraction. She'd stopped trying to mediate between Josh and Nathan—it didn't matter anymore, not the way it used to. There was only Nathan. His texts, his voice, the way he looked at her like she was the only person in the universe. Her world had narrowed to him, and she'd never felt so safe, so complete, so utterly cherished.
Elsa had started to notice. She'd asked Lily, gently, why she'd gone quiet, why she was always at "the library" at all hours, why she flinched whenever Josh raised his voice. Lily had laughed it off, a bright, brittle sound that didn't reach her eyes. She wasn't ready to share him. He was her secret, her perfect, beautiful secret.
She came to his dorm that evening in her favorite pink top, her hair half-up in a loose braid, and she knelt on the carpet at his feet without being asked, looking up at him with wide, adoring eyes that held no trace of the girl who used to idolize her $malerel. That girl was gone, replaced by this new, devoted creature.
<img src="img/Lily/Normal.jpg">
<<speech "Lily">> "I missed you. I couldn't stop thinking about you all day." <</speech>> Her voice was a soft, worshipful murmur.
<<speech "Nathan">> "I think about you too, Lily. All the time," <</speech>> he said, his voice a low, possessive hum. He cupped her face, his thumb brushing her cheekbone, his touch both gentle and claiming. <<speech "Nathan">> "You're mine now. Do you understand? Not Josh's little $relation. Not Elsa's little $relation. Mine." <</speech>>
<<speech "Lily">> "Yes. Only you. I promise," <</speech>> she breathed, the words a sacred vow.
She took him into her mouth, slow and worshipful, both hands wrapped around the base, tongue working the head, eyes locked up at him the whole time—never breaking contact, never wavering, her entire being focused on his pleasure, his approval.
<video src="img/Lily/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "That's my good girl. You're so perfect for me, Lily. So perfect," <</speech>> he groaned, his hand tightening in her hair, holding her in place.
Her eyes watered—from the depth, from the overwhelming praise. She took him deeper, moaning around him, wanting nothing but to be good for him, to be worthy of him. When he pulled her up, she was trembling, lips swollen, desperate for his touch, his validation.
<<speech "Lily">> "I want to be good for you. Please. Tell me I'm good." <</speech>>
<<speech "Nathan">> "You're perfect. The best thing that's ever happened to me," <</speech>> he assured her, his voice thick with a sincerity that she drank in. He knelt her on the carpet again, and this time she was nude, her hair loose, and she looked up at him with those adoring eyes as he fed her his cock, slow, the head sliding across her tongue and lips.
<video src="img/Lily/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He came across her tongue, her lips, her cheeks, and she took it all, mouth open, then gathered the cum with her hands and brought it to her lips, licking her fingers clean, smiling up at him like he'd given her the most precious gift in the world.
<<speech "Lily">> "Thank you. Thank you, Nathan." <</speech>>
<<speech "Nathan">> "You're welcome, sweetheart. You're mine now. Forever," <</speech>> he said, pulling her into his lap.
She curled into him afterward, and for a moment she thought about Aria—the girl who was supposed to be his girlfriend, the golden couple everyone gossiped about. The thought flickered and died, replaced by a sharp, possessive pang. It didn't matter. He'd chosen her. She was his now, and nothing else in the world mattered. She would wait. She would be good. And eventually, he would see that she was the only one he needed.
<<elseif _s is 3>>
She didn't have a life outside him anymore, and she didn't want one. Lily had stopped answering everyone's calls—her friends, Elsa, even Josh, who'd finally started noticing his little $relation had slipped away from him entirely and didn't know what to do about it. He'd tried to talk to her, to ask what was wrong, but she'd just looked at him with a vacant, pitying smile, as if he were a stranger. There was only Nathan. His voice was safety. His touch was home. The love had become the shape of her—total, absolute, the sun she orbited and the warmth she'd die to keep.
He gave her the pearl choker as a gift, fastening it around her neck like a collar, a beautiful, permanent symbol of his ownership. She wore it always, a constant, comforting weight against her skin. She was waiting on his bed that night, nude but for the choker, when he came in, a serene, welcoming smile on her face.
<img src="img/Lily/Corr3.jpg">
She rode him slow and steady in the cowgirl position, hands resting on his thighs for balance, her small breasts bouncing with the motion, her expression shifting between open-mouthed moans and soft, blissful smiles.
<video src="img/Lily/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lily">> "I love you, Nathan. I love you so much. I'm yours. Only yours. Forever," <</speech>> she chanted, her voice a breathy mantra of devotion.
<<speech "Nathan">> "I love you too, Lily. You're safe. You're mine," <</speech>> he replied, his hands on her hips, guiding her, controlling the rhythm, his gaze intense and unwavering.
He turned her onto her back, lifted one leg high, and drove into her—deep, steady, relentless—and she cried out, open-mouthed, eyes rolling back, skin shiny with sweat, completely lost in the overwhelming sensation of being possessed by him.
<video src="img/Lily/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "That's it. Take all of me. You were made for this—made for me," <</speech>> he groaned, his possessiveness a tangible force in the room.
She came apart with his name on her lips, a silent, shattering scream, and he came inside her, buried deep, a final, irrevocable claim. She curled into him, the pearl choker warm against her throat, her whole world reduced to the warmth of his chest and the steady beat of his heart.
<<speech "Lily">> "I'm yours. Completely. I'd do anything for you," <</speech>> she whispered, her words muffled against his skin.
<<speech "Nathan">> "I know, sweetheart. That's why I'll always protect you," <</speech>> he said, stroking her hair, a dark, satisfied smile on his face. <<speech "Nathan">> "Now, about your $relation... and your $malerel... They still worry about you. But don't you worry. I'll take care of them, too. I'll make sure they understand that you're with me now. That you're safe. That you're mine." <</speech>>
She believed him. She'd have believed anything he said. And somewhere across campus, Josh, who'd spent two years blaming Nathan for everything, had finally lost his little $relation to the friend he'd pushed away. But Lily wasn't Josh's anymore. She was Nathan's—the way she'd always, secretly, wanted to be.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Jasper and Chanel had lived under the same Havenwood roof for some times now. She ran the house, taught sociology at the university, and handled the legal and financial machinery that kept Havenwood independent. He had arrived as a foster resident and remained there as an adult student, long enough for them to know each other's routines: the cupboard where Chanel hid decent coffee, the stair Jasper skipped because it creaked, the exact look that meant a house meeting was about to become expensive.
<img src="img/Chanel/Normal.jpg">
Their closeness had limits. Chanel held the keys, signed the grants, and carried institutional responsibility for the home. Jasper was family to her, but he was also someone she had once been responsible for.
That distinction mattered to her.
It mattered less to Jasper every time he imagined Havenwood changing without his permission.
A university committee had proposed folding the house into ordinary residence life. The proposal promised stable funding and new plumbing. It also replaced Havenwood's private board with campus administrators who could cap stays, assign rooms, and decide which traditions counted as unnecessary.
Chanel sat in the annex living room in her fitted light-pink dress, reading the proposal aloud while Jasper made tea. She was not panicked or secretly collapsing under it; she was irritated by bad language and already marking practical objections in the margins.
<<speech "Chanel">> "They call the kitchen an 'underutilized communal food-preparation zone.'" <</speech>>
<<speech "Jasper">> "That's how you know nobody who wrote this has eaten there." <</speech>>
<<speech "Chanel">> "They want to replace the big table with individual stations." <</speech>>
<<speech "Jasper">> "Absolutely not." <</speech>>
She looked up at the firmness in his voice.
<<speech "Chanel">> "It is a proposal, Jasper. Nobody is taking the table anytime soon." <</speech>>
But proposals became votes; votes became locks changed by people who had never slept beneath Havenwood's roof. Jasper had learned too early how quickly adults could rename a home and call the loss an improvement.
Chanel was the barrier between Havenwood and that future. If her trust in him became stronger than her trust in committees, policies, or well-meaning offers, the house could stay theirs.
He opened the amber vial Thornfield had given him and added several drops to Chanel's tea.
The steam carried chamomile first, then leather and rain striking warm pavement. Chanel took a sip without looking away from the page.
<<speech "Chanel">> "New blend?" <</speech>>
<<speech "Jasper">> "Something warmer." <</speech>>
They worked through the proposal. The scent settled gradually around her. Her shoulders eased; the formal language stopped sounding urgent. She moved from the armchair to the gray patterned chaise beside Jasper and began speaking more freely—not about hidden pain, but about what she actually wanted the house to remain.
<<speech "Chanel">> "Residents should be allowed to become adults here without being hurried out because a funding chart says eighteen is a finish line." <</speech>> She underlined a paragraph hard enough to dent the page. <<speech "Chanel">> "Havenwood works because people can leave when they are ready and still come back for dinner." <</speech>>
Jasper watched her take another drink.
<<speech "Jasper">> "Then don't let them turn it into a dorm." <</speech>>
<<speech "Chanel">> "I don't intend to." <</speech>>
The answer loosened something in him. He touched her wrist, and Chanel left her hand beneath his.
The proposal slipped to the carpet. The annex felt smaller now, private, the scent making every shared year seem like evidence that no boundary between them could be dangerous.
Chanel stood and looked toward her bedroom door.
<<speech "Chanel">> "I bought something for the faculty benefit and lost my nerve about wearing it." <</speech>>
<<speech "Jasper">> "You don't usually ask me for wardrobe advice." <</speech>>
<<speech "Chanel">> "I am aware of that." <</speech>> She looked at their joined hands, confused by her own reluctance to let go. <<speech "Chanel">> "I also seem to be asking anyway." <</speech>>
She returned in a black lace bustier, matching panties and garter belt, sheer stockings, and black heels. The lace lifted her full breasts; her long wavy brown hair fell over one shoulder as she settled onto the chaise.
At first she posed as a joke—one hand in her hair, an exaggerated arch, a professor demonstrating what she thought seduction looked like. Jasper smiled. The essence kept working. Chanel's teasing softened into genuine pleasure as her fingers slipped beneath the lace edge of her panties. She spread her legs, rolled onto her side to show him the curve of her ass, then turned back and stroked herself slowly while holding his gaze.
<video src="img/Chanel/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Chanel">> "This is crossing several lines." <</speech>>
<<speech "Jasper">> "Do you want me to look away?" <</speech>>
She considered it. The rain-warm scent filled her next breath.
<<speech "Chanel">> "No." <</speech>>
On the white couch she removed the bustier and pulled the thong aside, keeping only the garter belt and stockings. She lay back with her full breasts bare, chest tattoos visible, and used two fingers to spread herself and rub her clit. Pleasure opened her mouth and half-closed her eyes. She dipped a fingertip inside, brought the wet fingers to her lips, then slid from the couch to the wooden floor and crawled toward Jasper on all fours.
<video src="img/Chanel/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She stopped between his knees. The tea had gone cold beside the proposal.
<<speech "Chanel">> "Tell me you will not make this strange in the house." <</speech>>
Jasper brushed a loose strand of hair from her face.
<<speech "Jasper">> "I won't give anyone a reason to question you." <</speech>>
It was not the promise she had asked for, but the essence made it feel close enough. Chanel rested her cheek against his thigh, trust settling deeper than embarrassment.
Jasper looked past her toward the transfer proposal on the floor. One barrier between him and Havenwood had begun to move where he guided it.
<<elseif _s is 2>>
<img src="img/Chanel/Corr1.jpg">
Chanel returned from a faculty event in a metallic bronze one-shoulder dress scattered with tiny stars. Jasper was in the annex with the transfer proposal open across the coffee table and a small candle burning beside it.
She stopped when she smelled leather, chamomile, and rain.
<<speech "Chanel">> "That scent was in the tea." <</speech>>
<<speech "Jasper">> "You liked the tea." <</speech>>
<<speech "Chanel">> "That is not an answer." <</speech>>
She crossed the room and blew out the candle. The smoke curled upward, carrying a stronger trace through the annex.
<<speech "Chanel">> "What happened here was not normal. I undressed for someone who lives under my roof and whom I once had a duty to supervise." <</speech>>
<<speech "Jasper">> "You don't supervise me now." <</speech>>
<<speech "Chanel">> "I know." <</speech>> Her voice softened despite her effort to keep it firm. <<speech "Chanel">> "That does not make the history disappear." <</speech>>
Jasper did not crowd her. He asked about the committee response, and Chanel answered because the question was concrete. The proposed takeover had gained support. She had argued for an independent grant instead. Jasper listened, asked which votes were undecided, and moved closer only when she invited him to look at the marked pages.
The extinguished candle kept releasing essence from the warm wax. Chanel's back loosened against the couch. Her anger remained, but it became harder to hold beside the memory of him listening and the conviction that he understood what Havenwood meant better than anyone on the committee.
<<speech "Chanel">> "I came down here to set a boundary." <</speech>>
<<speech "Jasper">> "Set it." <</speech>>
She looked at him. The scent wrapped through another breath.
<<speech "Chanel">> "Stop making that sound so easy." <</speech>>
The bronze dress slid from her shoulder and pooled on the carpet. Chanel knelt in front of him, a large ring still on one hand. She held his cock with both hands, licked along the shaft, then worked the head between her lips. One hand stroked the base while the other cupped his balls. Saliva brightened her mouth as she took him deeper and looked up.
<video src="img/Chanel/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper drew her back by the chin. Chanel opened her mouth and extended her tongue. Thick white cum coated it and spilled from one corner of her lips down her chin while his dark hand held the glistening shaft near her face. She kept her gaze lifted, catching the last fluid and cleaning the head with slow movements of her tongue.
<video src="img/Chanel/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The room became quiet. Chanel wiped her chin and looked toward the dead candle.
<<speech "Chanel">> "I still smell it." <</speech>>
<<speech "Jasper">> "The wax stays warm." <</speech>>
<<speech "Chanel">> "And I stop wanting to argue when I breathe it." <</speech>>
Jasper's thumb moved gently across her lower lip.
<<speech "Jasper">> "You were arguing a minute ago." <</speech>>
<<speech "Chanel">> "Not well enough." <</speech>>
She did not accuse him outright. The idea sat between them, unsettling and incomplete. Chanel gathered the bronze dress but remained on the floor, leaning into the hand at her cheek while another part of her counted every reason she should move away.
<<speech "Chanel">> "No more candles." <</speech>>
<<speech "Jasper">> "All right." <</speech>>
He agreed because he had other ways to fill a room.
<<elseif _s is 3>>
<img src="img/Chanel/Corr3.jpg">
The university's final proposal lay on the annex table. It offered Havenwood permanent funding in exchange for administrative control. Chanel had marked two options: accept the transfer, or reject it and build an independent funding board.
Jasper had already treated the room. The essence rested in the upholstery, the curtains, and the tea service—not a sharp perfume now, but the familiar smell of leather, chamomile, and summer rain worked into everything Chanel associated with home.
She entered in a robe over black lace stockings and heels, carrying the unsigned papers. One window stood open behind her.
<<speech "Chanel">> "I know what you've been doing." <</speech>>
Jasper did not pretend not to understand.
<<speech "Chanel">> "The tea. The candle. This room." <</speech>> She placed the proposal on the table. <<speech "Chanel">> "I come in angry and leave agreeing with you. I think about telling someone, and then I remember how it feels to sit beside you and the urgency disappears." <</speech>>
The open window stirred the curtains. It did nothing to clear the scent embedded in the room.
<<speech "Jasper">> "Are you going to accept their offer?" <</speech>>
<<speech "Chanel">> "That is not the point." <</speech>>
<<speech "Jasper">> "It is to me." <</speech>> His voice remained soft. <<speech "Jasper">> "They get the lease, the keys, and the right to decide when people stop belonging here. You know what that means." <</speech>>
<<speech "Chanel">> "It means reliable funding." <</speech>>
<<speech "Jasper">> "It means Havenwood belongs to people who have never needed it." <</speech>>
Chanel's hand tightened around the robe. She agreed with him about the proposal. That was what made his manipulation difficult to separate from her own judgment.
<<speech "Chanel">> "You could have trusted me to decide." <</speech>>
<<speech "Jasper">> "I trust you with the house." <</speech>> He stepped closer. <<speech "Jasper">> "I don't trust the world not to take it from both of us." <</speech>>
The essence gathered in her with every breath. Her anger softened at the edges, then folded inward, transformed into the impulse to prove he had never needed to fear her.
Chanel untied the robe.
<<speech "Chanel">> "This does not make what you did right." <</speech>>
<<speech "Jasper">> "No." <</speech>>
<<speech "Chanel">> "I need you to say that." <</speech>>
<<speech "Jasper">> "It wasn't right." <</speech>> His hand settled at her waist. <<speech "Jasper">> "I did it because I will not let anyone scatter this family." <</speech>>
The admission should have sent her through the door. Instead Chanel kissed him.
Her robe fell to the beige carpet. She straddled Jasper in reverse, black stockings still on, hands braced on his thighs while she rode him. He gripped and squeezed her bare breasts as her body rose and lowered, dark hair falling forward, the proposal visible on the table beyond them.
<video src="img/Chanel/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She stopped with him still inside her. The last piece of resistance held in the tightness of her shoulders.
<<speech "Jasper">> "Which option do you want?" <</speech>>
Chanel looked at the papers. For one clear moment she understood that the question was larger than funding. He was asking who would stand at the center of every choice she made about Havenwood.
The scent settled completely.
<<speech "Chanel">> "We build the independent board." <</speech>> She turned her head toward him. <<speech "Chanel">> "And you sit on it. No agreement affecting this house gets signed until you and I have read it together." <</speech>>
Jasper's hands tightened at her waist.
<<speech "Jasper">> "What about us?" <</speech>>
<<speech "Chanel">> "There is no version of Havenwood I want that sends you to the edge of it." <</speech>> Her voice became calm, certain. <<speech "Chanel">> "You are part of every decision now—including mine." <</speech>>
She moved with him to the cream leather sofa and lay on her back, fully nude except for a thin black choker. Jasper held one leg high and thrust into her while she watched him with her mouth open. When he pulled out, white fluid shone across her pussy and inner thighs. He knelt beside her and stroked himself while she kept her legs spread, waiting for everything he wanted to leave on her.
<video src="img/Chanel/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The university received a courteous rejection supported by an independent funding plan so polished that the committee praised Chanel for protecting Havenwood's character. Jasper's name appeared among the adult resident representatives. Nobody questioned it; he had lived there, studied sociology, and knew the house better than most board members ever would.
Chanel remained the same professor and caretaker in public. She taught, managed the house, and welcomed former residents back to the big kitchen table. Privately, every grant, volunteer application, and adult guest list passed through Jasper's hands as well as hers.
He began suggesting people who would fit Havenwood's growing circle. Chanel invited them warmly, certain she was strengthening the community she had always protected. The essence made Jasper's judgment feel like the most reliable instinct she possessed.
The university had failed to take the house. It never occurred to anyone that Jasper already had.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Chanel was Nathan's sociology professor. He had enrolled in her elective because the course fit his literature schedule and because Jasper spoke well of her work at Havenwood. To Chanel, Nathan was the student who wrote thoughtful papers, rarely spoke first, and then raised the one point that changed the direction of the room. To Nathan, she was sharp without showing off, warm without treating a university classroom like group therapy, and considerably harder to ignore than a professor should have been.
<img src="img/Chanel/Normal.jpg">
Their first private stretch of conversation came after a department symposium. The faculty hospitality suite had a white sectional, a granite kitchenette, and stacks of anonymous response cards that needed sorting before Chanel could file the event report. She stood in the fitted pink dress she had worn beneath her jacket while Nathan separated the cards by panel.
<<speech "Chanel">> "You realize student volunteers are allowed to leave when the event ends." <</speech>>
<<speech "Nathan">> "You said these had to be counted before you locked up." <</speech>>
<<speech "Chanel">> "That was information, not a hostage situation." <</speech>>
<<speech "Nathan">> "Too late. I've developed Stockholm syndrome around the stationery." <</speech>>
Chanel shook her head and kept sorting. Nathan had challenged one of the symposium questions because it asked students whether they felt "successfully integrated," as if there were only one correct kind of campus life. Chanel had crossed the wording out in front of the panel and thanked him for catching it.
<<speech "Chanel">> "You could speak that clearly in class more often." <</speech>>
<<speech "Nathan">> "In class there are thirty people waiting to explain why I'm wrong." <</speech>>
<<speech "Chanel">> "There are thirty people hoping somebody else speaks first." <</speech>> She tapped a card against the table. <<speech "Chanel">> "You don't need to win the room. Just enter it." <</speech>>
Nathan looked at her, a little dazzled despite himself.
<<speech "Nathan">> "Do you practice sounding quotable?" <</speech>>
<<speech "Chanel">> "Constantly. It's forty percent of teaching." <</speech>>
The laugh they shared was ordinary. The warmth that followed was not.
The love spirit stirred behind Nathan and spread across the hospitality suite in a slow, living wave. It did not feel like the building's heat. It moved with him, soft and golden, gathering every existing thread of Chanel's fondness—her respect for his work, her amusement, the attraction she had refused to name because he sat in her class—and pulling them suddenly tight.
Chanel stopped with a response card between her fingers.
Nathan noticed the color rise along her throat.
<<speech "Nathan">> "Professor?" <</speech>>
The title landed differently now.
<<speech "Chanel">> "You should call me Chanel while we're not on campus." <</speech>>
They were still in a university hospitality suite. She knew that. The spirit made the distinction feel reasonable anyway.
Nathan came around the table to collect the finished stack. Their hands touched. Warmth pulsed through the contact, and Chanel drew in a breath.
<<speech "Chanel">> "This is inappropriate." <</speech>>
<<speech "Nathan">> "Nothing happened." <</speech>>
<<speech "Chanel">> "That is becoming a technicality." <</speech>>
She told him to wait and disappeared into the adjoining faculty room. Beneath the pink dress she wore purple-and-black lace, stockings, and black heels—clothes chosen for herself, not him. When she returned in only the lingerie, she carried the dress over one arm and looked as startled by the decision as Nathan did.
<<speech "Nathan">> "Chanel—" <</speech>>
<<speech "Chanel">> "If you remind me that I'm your professor, I may recover my judgment." <</speech>>
<<speech "Nathan">> "You are my professor." <</speech>>
She gave him a long look.
<<speech "Chanel">> "Apparently not fast enough." <</speech>>
Chanel sat on the white sectional and pulled down the bra straps. She cupped her full breasts, unhooked the bra, and tossed it aside. Her legs opened. One hand moved across her chest while the other slipped beneath the lace panties, rubbing herself as she watched Nathan struggle between leaving and wanting her.
The spirit fed on both.
<video src="img/Chanel/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Her orgasm left her staring at the ceiling, the response cards forgotten on the table.
Nathan remained beside the couch without touching her.
<<speech "Chanel">> "You could have stopped me." <</speech>>
<<speech "Nathan">> "I wasn't sure you wanted me to." <</speech>>
<<speech "Chanel">> "Neither was I." <</speech>>
She pulled the pink dress back over herself, gathered the counted cards, and carried them toward the kitchenette as if finishing the task could restore the professor-student boundary.
At the granite counter, Nathan reached for the same stack. Their bodies met. The spirit's warmth rose again, stronger for having been denied.
Chanel kissed him.
Nathan lifted her onto the counter, the fitted pink dress riding high as she planted one foot beside her and opened her legs. He knelt, held her raised thigh, and pressed his mouth beneath the hem. Chanel leaned back on her hands, looking down at her student while his tongue worked over her, each movement turning professional alarm into open-mouthed pleasure.
<video src="img/Chanel/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When her breathing settled, Chanel slipped down from the counter and straightened the dress.
<<speech "Chanel">> "You have my seminar in the morning." <</speech>>
<<speech "Nathan">> "I know." <</speech>>
<<speech "Chanel">> "You will sit in your usual seat. You will not stare at me." <</speech>>
<<speech "Nathan">> "What counts as staring?" <</speech>>
She almost smiled.
<<speech "Chanel">> "I will decide." <</speech>>
Professor Reynolds locked the suite and walked him to the corridor. The authority returned to her posture. The warmth stayed beneath it, transforming the prospect of seeing Nathan in class from a problem she had to solve into the moment she most wanted to reach.
<<elseif _s is 2>>
<img src="img/Chanel/Corr1.jpg">
Chanel called Nathan to her office after a faculty dinner. She still wore a metallic bronze one-shoulder dress scattered with tiny stars. A course-transfer form waited on her desk.
<<speech "Chanel">> "Another lecturer can grade your remaining work." <</speech>>
Nathan read the form without picking it up.
<<speech "Nathan">> "Am I being punished?" <</speech>>
<<speech "Chanel">> "No." <</speech>>
<<speech "Nathan">> "Then are you?" <</speech>>
The question irritated her because it was fair.
<<speech "Chanel">> "I am removing a conflict before it affects your education or my judgment." <</speech>>
<<speech "Nathan">> "Has it affected my grade?" <</speech>>
<<speech "Chanel">> "No. I checked it three times." <</speech>>
<<speech "Nathan">> "Then sign the form if it's what you want." <</speech>>
He offered her the pen. He did not bargain, flirt, or use the secret between them to keep his place in her class. That restraint struck the affection Chanel was already trying to contain.
The love spirit woke.
Warmth rolled from Nathan across the office, gathered at Chanel's back, and moved through her chest. The careful case for recusal remained perfectly logical. It simply became unbearable to imagine handing his papers, his questions, and the hours she spent listening to him think to somebody else.
Her fingers closed around the pen but did not move.
<<speech "Chanel">> "You are making this very difficult." <</speech>>
<<speech "Nathan">> "I'm standing still." <</speech>>
<<speech "Chanel">> "Exactly." <</speech>>
She set the unsigned form down and led him through the private connecting hall to the faculty residence staircase. Beneath the bronze dress she wore black lace lingerie, stockings, a long pearl necklace, and a heavy pearl bracelet. She had dressed for the dinner. She had also known she would see him after it.
Chanel let the dress fall onto the light wood floor and knelt topless near the white staircase.
<<speech "Chanel">> "This changes nothing about the form." <</speech>>
<<speech "Nathan">> "Then it will still be there when we're done." <</speech>>
The answer sent a hot pulse through her that had nothing to do with obedience. He would accept her decision. The spirit made her love him for it.
She took him into her mouth, one hand stroking the base as her lips and tongue worked along the shaft. The pearls shifted against her breasts. She maintained eye contact, pulled back to lick the head, and sank down again while Nathan's hand rested gently in her hair.
<video src="img/Chanel/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Chanel opened her mouth when his breathing changed. Nathan came across her tongue, lips, chin, cheeks, and the small cross tattoos high on her chest. She smiled despite herself, wrapped a hand around him, and cleaned the head while white fluid continued dripping down her skin.
<video src="img/Chanel/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She remained on the floor afterward, one pearl bracelet pressed against her thigh.
<<speech "Chanel">> "I was certain before you walked in." <</speech>>
<<speech "Nathan">> "About transferring me?" <</speech>>
<<speech "Chanel">> "About everything." <</speech>> She looked toward the office door. <<speech "Chanel">> "Then the room became warm, and losing an hour with you felt worse than risking my career. That is not a proportionate response." <</speech>>
Nathan crouched so they were eye to eye.
<<speech "Nathan">> "Sign the form." <</speech>>
Chanel blinked.
<<speech "Nathan">> "If it's the right thing for your class, sign it. I don't want you wondering whether I kept my grade because you couldn't send me away." <</speech>>
He helped her stand and returned to the office. Chanel dressed, read the form once more, and signed it while the spirit's warmth ached through her.
Recusing herself should have ended the danger. Instead it removed the last academic reason she could use to keep Nathan at a distance.
<<elseif _s is 3>>
<img src="img/Chanel/Corr3.jpg">
The signed recusal sat in Chanel's faculty file. Another lecturer now graded Nathan's work, and their contact no longer changed his marks. Chanel had solved the official problem.
She had not solved Nathan.
He stood in the bedroom of the faculty residence while she paced beside the bed dressed in a robe over black thigh-high stockings and black heels. Deep red satin covered the mattress.
<<speech "Chanel">> "You are still a student at this university." <</speech>>
<<speech "Nathan">> "Not yours." <</speech>>
<<speech "Chanel">> "That distinction satisfies a form. It does not repair my judgment." <</speech>>
<<speech "Nathan">> "Do you regret me?" <</speech>>
Chanel stopped.
<<speech "Chanel">> "No." <</speech>> The answer came with no academic language to hide inside. <<speech "Chanel">> "I regret how little else seems to matter when you're near me." <</speech>>
The love spirit rose around Nathan.
It filled the bedroom in a bright, living tide. Chanel felt it close over the last separation she had built between affection and obsession. She remembered his work in her seminar, the questions he asked only after thinking, the way he had handed her the pen and told her to protect both of them even when it cost him access to her classroom.
Nathan felt the spirit move too. Guilt tightened his face.
<<speech "Nathan">> "I don't want your career, Chanel. I don't want a grade. I want you." <</speech>>
<<speech "Chanel">> "That is precisely the sentence I cannot defend against." <</speech>>
She kissed him before the warmth could grow any stronger.
The robe dropped beside the bed. Nathan turned her onto the red satin, black stockings and heels still on. Chanel rose onto all fours while he took her from behind, his hands gripping her ass as he drove into her. Her full breasts swung beneath her. She turned her face to the side, mouth open, the last of her resistance tightening into raw pleasure with every stroke.
<video src="img/Chanel/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Nathan slowed. Chanel looked back at him, professor and student stripped out of the room until only the two of them remained.
<<speech "Chanel">> "I love you." <</speech>> Her voice was steady now. <<speech "Chanel">> "Not because you were good in my class. Not because I thought I could guide you. I love the man who challenged my question, handed me the pen, and accepted the boundary I couldn't bear to set." <</speech>>
<<speech "Nathan">> "I love you too." <</speech>>
The spirit settled completely. Chanel no longer experienced its pressure as something separate from her own heart.
She kicked off the heels, stripped away the stockings, and pulled on a fitted blue top. Nathan followed her into the residence exercise room and caught her against the gray padded bench. He pushed the shirt above her breasts and held one leg high while he thrust into her. Her natural dark pubic hair and the floral tattoo above her pussy remained visible as white cum began leaking around his shaft. He pulled out, let it spill, then pushed back inside and forced more onto the gray surface.
<video src="img/Chanel/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Chanel continued teaching. Nathan completed the course under another grader, so nobody could point to a changed mark or an altered comment. On paper, Professor Reynolds had handled the conflict exactly as policy required.
Outside that paper trail, her professional world opened for him. She recommended him for conference panels, introduced him to faculty who could publish or employ him, and made certain his name arrived in rooms before he did. She did it because she believed in his work—and because the spirit had made belief in Nathan the strongest certainty she possessed.
Her adult colleagues, former students, and Havenwood alumnae began meeting him at small dinners Chanel arranged with perfectly credible academic reasons. Nathan sat among them, thoughtful and warm, while Chanel watched new affection form around the table.
Everyone saw a professor mentoring a promising student after responsibly recusing herself from his grade. Nobody saw that her love now organized the syllabus beneath her entire life.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<<speech "Kylie">> "Hey! You made it!" <</speech>> Kylie chirped, swinging the front door open with a wide, genuine smile. <<speech "Kylie">> "I was starting to think you got lost on your way to the coolest house on the block." <</speech>> She playfully rolled her expressive dark eyes, long straight dark hair catching the afternoon light. Barefoot, a tiny halter top, impossibly short distressed shorts.
<img src="img/Kylie/Normal.jpg">
<<speech "Jasper">> "Wouldn't miss it," <</speech>> he replied, his smile easy and warm as he stepped inside. He subtly brushed his fingers against his jeans pocket, releasing a near-invisible puff of something from his skin. The scent was a complex, warm melody of vanilla, soft leather, and something uniquely comforting — like a childhood blanket fresh from the dryer. It didn't command; it convinced. It bypassed the conscious mind and spoke directly to the limbic system, tagging his presence with the emotional signature of 'home', 'safety', and 'unconditional acceptance'. The chemical equivalent of a lifelong friendship, condensed into a single breath.
<<speech "Kylie">> "Nathan's out with his study group, so we've got the place to ourselves," <</speech>> she announced, leading him into the living room. <<speech "Kylie">> "Which means you're legally obligated to help me decide which filter to use for my next post. It's a matter of life and death." <</speech>> She flopped onto the plush couch, patting the cushion beside her.
As Jasper sat, the perfume began to weave its magic. Kylie, already open and affectionate, felt a strange, pleasant warmth spread through her chest. It wasn't just the usual friendly vibe she got from people; this was deeper, more profound. Looking at Jasper felt like looking at a friend she'd known for years, someone who understood all her jokes and never judged her.
<<speech "Jasper">> "I'm sure it is," <</speech>> he chuckled, playing along. <<speech "Jasper">> "But first, I'm dying of thirst. You wouldn't let your guest dehydrate, would you?" <</speech>> His tone was light, teasing, but it carried an undercurrent of gentle command that her mind eagerly accepted.
<<speech "Kylie">> "Oh my god, you're right! I'm a terrible host!" <</speech>> She jumped up, her playful sarcasm now tinged with genuine concern for his comfort. <<speech "Kylie">> "What's your poison? We've got... soda. And water. And that fancy sparkling stuff Nathan likes." <</speech>>
<<speech "Jasper">> "Water's fine," <</speech>> he said, his eyes following her as she bounced into the kitchen. <<speech "Jasper">> "You're very... energetic." <</speech>>
<<speech "Kylie">> "Blame the sugar," <</speech>> she called back, returning with a glass of water. She handed it to him, her fingers brushing against his — the contact sent a pleasant, tingling warmth through her that made her want to touch him again. She sat back down, tucking her legs under her, body angled toward his. <<speech "Kylie">> "So, Havenwood... is it like, super intense?" <</speech>>
<<speech "Jasper">> "It can be," <</speech>> he said, taking a slow sip. His gaze was steady, calm. <<speech "Jasper">> "We've all been through stuff. It makes you... close. Like a real family. The kind you choose." <</speech>>
<<speech "Kylie">> "That sounds nice," <</speech>> she said softly, and she meant it. She'd grown up with a loving family, but something about the way he said it made her feel like she was missing something — a place where you were wanted not because you were someone's $relation, but because you were you.
The conversation drifted — filters, her day, his house, the cafeteria food, a show she was watching — and the words came easy, the way they only did with people you'd known forever. She caught herself thinking she hoped he'd stay all afternoon. <<speech "Kylie">> "You know," <</speech>> she said, quieter now, <<speech "Kylie">> "everyone's always so careful around me. Like I'm Nathan's little $relation and they have to be on their best behavior. You're not like that. You just — talk to me." <</speech>>
<<speech "Jasper">> "Because you're interesting," <</speech>> he said simply. <<speech "Jasper">> "Not because of who your $malerel is." <</speech>>
The warmth in her chest went deeper. She'd never been seen like that — as just herself. And she wanted, suddenly, to show him the real her.
<<speech "Kylie">> "No filters," <</speech>> she said, and in one fluid motion she pulled her halter top over her head, revealing her small, perfect breasts. Then she stood, wiggling out of her tiny shorts and panties until she was standing completely naked in the middle of her living room, the afternoon light catching her youthful glow. <<speech "Kylie">> "This is me. No filters." <</speech>>
<video src="img/Kylie/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper didn't speak. He simply stood and closed the distance between them. His eyes roamed over her body — not with lust, but with an appraising, possessive warmth that made her feel more seen, more cherished, than she ever had in her life. He reached for the bottle of oil on the shelf — part of her "skincare routine," she'd mentioned it — and poured it over her chest in slow, thick streams, the liquid running down between her breasts, over her pink nipples, across her stomach. His fingers spread and massaged it into her soft skin, squeezing and cupping her tits until they shone.
<video src="img/Kylie/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kylie">> "That feels — " <</speech>> she breathed, head tipping back. <<speech "Kylie">> "I've never felt like this. Like I don't have to be anyone but me." <</speech>>
<<speech "Jasper">> "You don't," <</speech>> he said, warm. <<speech "Jasper">> "You can just be here, with me." <</speech>>
She stayed. And for the first time in her life, the sweet, people-pleasing girl who always had to be the good one let herself just be.
<<elseif _s is 2>>
The memory of his hands on her skin, his voice in her ear, was a constant, tingling distraction. She found herself replaying the moment he'd touched her, the way he'd claimed her body with an easy confidence that made her feel both powerless and exhilarated. She texted him constantly, her usual playful sarcasm replaced by a needy, desperate eagerness. She needed to see him again. The compulsion was a physical ache, a hollow space inside her that only his presence could fill.
He finally agreed to come over late one night, after Nathan was asleep. Kylie waited for him in her bedroom, heart pounding. She was wearing a tiny silk nightie, a stark contrast to the casual clothes she'd worn during their first encounter. When he slipped into her room, closing the door silently behind him, she felt a wave of relief so intense it almost brought her to tears.
<img src="img/Kylie/Corr1.jpg">
<<speech "Kylie">> "You came," <</speech>> she whispered, rushing to him, throwing her arms around his neck, burying her face in his chest. <<speech "Kylie">> "I've been going crazy. I thought... I thought you didn't want to see me again." <</speech>>
<<speech "Jasper">> "Of course I wanted to see you," <</speech>> he murmured, his arms wrapping around her, pulling her close. <<speech "Jasper">> "I just wanted you to want it enough. To come to me." <</speech>>
He shifted, and the air around them filled with the scent — thicker now, warmer, the perfume that had become the emotional signature of home. She lay back on the bed, her head hanging slightly off the edge, dark hair spilling to the floor — and she took him deep into her throat, eyes locked upward, wide and focused, cheeks hollowing as she swallowed him again and again. She'd never done this before. She didn't know how she knew how. She just knew she wanted to please him.
<video src="img/Kylie/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up onto the pillows, and she lay back, dark wavy hair spread out, green eyes looking up — and he fed his cock to her, slow, and she opened wide, tongue extended, licking and swirling around the head, saliva coating the shaft, spit strings stretching between her tongue and the tip.
<video src="img/Kylie/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kylie">> "I don't know what's happening to me," <</speech>> she whispered afterward, curled against him. <<speech "Kylie">> "I've never been like this with anyone. I'm always the one everyone loves but nobody really sees. You see me. You make me feel safe. I don't want to stop feeling that." <</speech>>
<<speech "Jasper">> "You don't have to," <</speech>> he said, warm and steady, his hand in her hair. <<speech "Jasper">> "You're safe with me, Kylie. You can just be mine." <</speech>>
She fell asleep against his chest, and the warmth never left her — and the sweet girl who'd once wrinkled her nose at her $malerel's sweat was already changing, a little more each night.
<<elseif _s is 3>>
Her world had shrunk to the size of her phone screen and the space between her and Jasper. Every notification was a potential lifeline; every hour without a message a slow, suffocating dread. Nothing mattered but the next command, the next dose of Jasper's presence. The alchemical trust had completed its work, hollowing her out and filling the space with a singular, unwavering devotion.
He finally came to her late one night, letting himself in with the key she'd given him. He found her in her bedroom, not in her bed, but kneeling on the floor beside it, waiting. She was wearing a simple white lace bra and panty set, a gift he'd instructed her to buy. The room was dark except for a single candle, its flickering light casting long shadows on the walls.
<img src="img/Kylie/Corr2.jpg">
<<speech "Kylie">> "You're here," <</speech>> she breathed, her voice a reverent whisper. She didn't move, didn't stand, just looked up at him with wide, worshipful eyes. <<speech "Kylie">> "I was worried you wouldn't come." <</speech>>
<<speech "Jasper">> "I always come for what's mine," <</speech>> he said, his voice a low, possessive rumble. He didn't release any perfume; he didn't need to. The air was already thick with it — a scent that had become her personal atmosphere, the very oxygen she breathed. He walked to the bed and sat on the edge, looking down at her. <<speech "Jasper">> "Have you been good?" <</speech>>
<<speech "Kylie">> "So good," <</speech>> she rushed to assure him, hands clasped in her lap. <<speech "Kylie">> "I did everything you said. I didn't touch myself. I didn't talk to Nathan. I just... I just waited for you." <</speech>> Her voice cracked with the weight of it — the need, the devotion, the fear of disappointing him.
He pulled her up onto the bed, and she was oiled, glistening, on all fours, looking back at him with soft, adoring eyes, already his. He climbed behind her, gripping her hips, and sank into her, and she rode him in reverse-cowgirl, her rounded, shiny ass filling his view, her body moving in steady, deep strokes, looking back at him over her shoulder with parted lips and focused eyes.
<video src="img/Kylie/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kylie">> "I trust you, Jasper," <</speech>> she breathed. <<speech "Kylie">> "I trust you. Completely ❤️. I've never trusted anyone like this. You're everything." <</speech>>
He laid her back on the sheets, and she opened her mouth, tongue out, eyes half-lidded — and he came across her tongue, her lips, her cheek, thick and warm, and she kept her mouth open, catching it, tasting it, looking up at him with a soft, receptive smile, accepting every drop.
<video src="img/Kylie/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kylie">> "I don't want anyone else," <</speech>> she murmured against him afterward. <<speech "Kylie">> "Just you. Always you. You're the only one who's ever made me feel like I matter — like I'm not just Nathan's little $relation, like I'm someone." <</speech>>
<<speech "Jasper">> "You're mine," <</speech>> he said, warm and certain, holding her close. <<speech "Jasper">> "That's what you are now. Mine. And you'll never have to be anyone else again." <</speech>>
She smiled against his chest, content, safe, utterly his. The sweet kid who'd once wanted everyone to like her had found the one person whose liking mattered more than anyone else's — and she'd given him everything, happily, completely. Nathan never noticed the change. Why would he? She still smiled, still laughed, still made him pizza. But at night she belonged to Jasper — and she'd never wanted anything more.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Isabella/Normal.jpg">
Isabella and Nathan had been friends since childhood. Director Kane—her uncle and adoptive father—had been close to Nathan's late father, so their families had shared meals, holidays, and more formal events than either child enjoyed.
The friendship was genuinely platonic. Isabella had never been secretly waiting for Nathan to notice her, and Nathan had never treated every childhood memory as an unfinished romance. Their closeness mattered precisely because neither of them had demanded that it become something else.
Isabella asked Nathan to film an acrobatics demonstration for a campus activity reel. She arrived beside the covered walkway in her white off-shoulder top, rainbow cardigan, and ripped jeans, then changed by the lockers into a black off-shoulder top and short black skirt.
Yellow pom-poms had been left beside the concrete pillar.
<<speech "Nathan">> "Acrobatics has apparently become a school-spirit emergency." <</speech>>
<<speech "Isabella">> "If I hold a pom-pom upside down, it becomes advanced choreography." <</speech>>
<<speech "Nathan">> "That sounds legally defensible." <</speech>>
<<speech "Isabella">> "My father has had a terrible influence on both of us." <</speech>>
Nathan raised the camera. Isabella smiled over her shoulder, planted her hands, and kicked into a handstand against the pillar. Her skirt fell toward her waist as her legs opened into a wide V, exposing white panties with light-blue trim across her rounded ass. She adjusted her balance, walked her hands slightly, then lowered into a deep side split on the concrete.
<video src="img/Isabella/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "The committee may have notes about the skirt." <</speech>>
<<speech "Isabella">> "The committee can learn to appreciate athletic engineering." <</speech>> She reached up. <<speech "Isabella">> "Help me before athletic engineering tears something." <</speech>>
Nathan took her hand.
The love spirit moved through the contact.
It was sudden and unmistakable. Warmth poured from Nathan's palm, climbed Isabella's arm, and opened behind her ribs in one powerful wave. Her oldest memories did not reveal a hidden romance; they changed meaning in front of her. The boy who had stolen food from her plate, the teenager who had sat through Kane's dinners beside her, and the man holding her hand became one continuous object of impossible tenderness and desire.
Isabella stood too quickly and collided with his chest. Her breath caught. She knew the familiar line of Nathan's mouth, but she had never wanted to kiss it before that moment.
She stepped back at once.
<<speech "Isabella">> "Something just happened." <</speech>>
Nathan had felt the spirit answer him. He released her hand.
<<speech "Nathan">> "You stood up too fast." <</speech>>
<<speech "Isabella">> "No." <</speech>> Her voice remained calm even while color rose in her face. <<speech "Isabella">> "I know what dizziness feels like. I looked at you and my entire relationship with you changed." <</speech>>
<<speech "Nathan">> "We should stop filming." <</speech>>
<<speech "Isabella">> "Yes. We should also not pretend that was a normal sentence for me to say." <</speech>>
At Isabella's apartment, they sat at opposite ends of the couch and tried to let the feeling settle. Distance weakened the physical heat but not the new emotional certainty. When Nathan crossed the room for water, the spirit stirred again; Isabella felt her attention follow him before she consciously chose to look.
<<speech "Isabella">> "This was not waiting underneath our friendship." <</speech>>
<<speech "Nathan">> "I know." <</speech>>
<<speech "Isabella">> "Good. Because saying we always wanted this would make me doubt every memory we have." <</speech>> She watched him carefully. <<speech "Isabella">> "It is new. It is also very strong." <</speech>>
<<speech "Nathan">> "Strong is not the same as safe." <</speech>>
<<speech "Isabella">> "That is unexpectedly sensible." <</speech>>
Nathan tried to smile. The warmth between them deepened at the sight of his worry.
Isabella moved closer in measured stages: first the same couch cushion, then her hand over his, then one kiss that both of them stopped after. She sat back, breathing hard.
<<speech "Isabella">> "I still think this is too fast." <</speech>>
<<speech "Nathan">> "Then we stop." <</speech>>
<<speech "Isabella">> "If I say stop, you stop." <</speech>> She touched his face. <<speech "Isabella">> "Right now I am saying stay." <</speech>>
In the bedroom, Nathan undressed her and knelt between her open thighs. Isabella lay against the white sheets while he ate her out, both hands threaded into his hair. The love spirit turned every careful touch into reassurance that the oldest friendship in her life would survive the new desire consuming it.
<video src="img/Isabella/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, Isabella held his gaze rather than hiding inside the intimacy.
<<speech "Isabella">> "We do not rewrite our childhood to justify this." <</speech>>
<<speech "Nathan">> "We don't." <</speech>>
<<speech "Isabella">> "And we admit that something changed today." <</speech>>
Nathan agreed. He did not admit that the change had come from him.
<<elseif _s is 2>>
<img src="img/Isabella/Corr1.jpg">
When Isabella next asked Nathan to come over, she had tested the feeling as carefully as she could. Away from him, she remained his affectionate childhood friend and was disturbed by how abruptly they had crossed the old boundary. Near him, the warmth returned and made distance feel like the mistake.
She wore a black top and a short black skirt with red-and-gold side stripes.
<<speech "Isabella">> "I need you to listen before the room starts feeling different." <</speech>>
<<speech "Nathan">> "All right." <</speech>>
<<speech "Isabella">> "When you are not here, I care about you the way I always did. I remember wanting you, but I can examine it." <</speech>> She pressed a hand to her sternum. <<speech "Isabella">> "When you come close, the feeling expands until examining it seems cruel." <</speech>>
Nathan said nothing. The spirit stirred at his fear of losing her, spreading familiar warmth through the apartment.
Isabella felt it arrive and closed her eyes.
<<speech "Isabella">> "There. That." <</speech>>
<<speech "Nathan">> "I feel something too." <</speech>>
<<speech "Isabella">> "Do you know what it is?" <</speech>>
He hesitated.
<<speech "Nathan">> "Not enough to explain it." <</speech>>
It was not a complete lie, but Isabella heard the part he had withheld.
They tried to remain on opposite sides of the room. The spirit did not erase Isabella's concern; it made Nathan's agreement feel so loving that the boundary began to seem less necessary. She crossed to him, kissed him, stopped, and rested her forehead against his.
<<speech "Isabella">> "I am aware that I am breaking my own rule." <</speech>>
<<speech "Nathan">> "We can still keep it." <</speech>>
<<speech "Isabella">> "I know." <</speech>> She lowered herself beside the bed. <<speech "Isabella">> "That is what frightens me." <</speech>>
On the white sheets beneath a gray duvet, Isabella moved onto all fours with her upper body bare and the striped skirt riding high. She wrapped one hand around Nathan's cock and took him into her mouth, pulling back to work the head with her tongue before sinking deeper. His hand rested in her dark wavy hair while her raised ass remained framed by the short skirt.
<video src="img/Isabella/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Nathan drew her onto her back and removed everything except a thin black sparkling choker. Isabella looked straight up with her mouth open and tongue extended. Thick cum landed across her lips, tongue, and chin. She smiled, displayed it, and licked her lips while keeping her gaze fixed on him.
<video src="img/Isabella/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The warmth made the smile effortless. The unresolved question remained beneath it.
<<speech "Isabella">> "You are not ready to tell me." <</speech>>
<<speech "Nathan">> "No." <</speech>>
<<speech "Isabella">> "Then I have to decide whether feeling this good beside you is enough to accept not understanding why." <</speech>>
She did not pretend the problem had disappeared. She simply found it harder to value any answer more than Nathan's presence.
<<elseif _s is 3>>
Isabella met Nathan in the dim bedroom wearing the same black off-shoulder top and short skirt with red-and-gold trim. She had come to restore the boundary she had failed to keep.
<<speech "Isabella">> "I want the friendship. I do not want to keep losing my judgment whenever the warmth appears." <</speech>>
<<speech "Nathan">> "Then we stop." <</speech>>
His immediate acceptance should have made leaving easy.
Instead, the love spirit answered the possibility of separation. Warmth filled the room in a deep, living wave. Isabella felt the friendship exactly as it had been and the new love layered over it—not a secret past, but a future that suddenly seemed more important than the unanswered cause.
She reached the door and kept her hand on the handle.
<<speech "Isabella">> "I know this began too suddenly." <</speech>>
<<speech "Nathan">> "Yes." <</speech>>
<<speech "Isabella">> "I know you are withholding something." <</speech>>
<<speech "Nathan">> "Yes." <</speech>>
Isabella turned. The spirit had not removed those facts. It had changed what she was willing to risk for them.
<<speech "Isabella">> "And I no longer want to leave more than I want an explanation." <</speech>>
That was the point of surrender.
<img src="img/Isabella/Corr2.jpg">
She crossed the room and jumped into Nathan's arms. He held her aloft while her legs wrapped tightly around his waist. Her black top stayed on; the striped skirt flipped around her hips as he lifted and lowered her onto him. Isabella clung to his shoulders, head tipping back, while one of his hands supported her thigh and the other gripped and spread her rounded ass.
<video src="img/Isabella/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Nathan carried her to the bed. Isabella lay on her back with the black top still covering her torso, skirt pushed aside, and legs raised and spread. He opened her swollen pussy with his fingers before driving into her in steady strokes. Her purple-painted toes curled in the air; wetness shone along her thighs while her hips tilted to meet him.
<video src="img/Isabella/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Isabella remained Kane's principled adopted daughter and Nathan's childhood friend. She did not erase the platonic history or claim that love had always been hiding inside it.
She accepted that the relationship had changed in one unnatural moment and, under the spirit's continuing influence, stopped demanding that Nathan explain the change before she built a life around it.
Nathan gained something more troubling than a childhood romance finally acknowledged. He gained a woman who knew the romance had not existed before—and loved him enough to remain anyway.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Isabella/Normal.jpg">
Isabella—Director Maxwell Kane's niece and adopted daughter—knew Jasper through Nathan, but their friendship developed through bad horror films rather than university business. A group of them had started meeting for late screenings; Jasper and Isabella were usually the two still arguing about the ending after everyone else had gone home.
For the campus masquerade, Isabella borrowed a bright costume loft with large windows and an adjoining bedroom. Jasper arrived carrying two old films and a thermos while she stood in her usual white off-shoulder top, rainbow cardigan, and ripped jeans.
<<speech "Isabella">> "You brought the one with the haunted elevator." <</speech>>
<<speech "Jasper">> "It is a serious study of vertical isolation." <</speech>>
<<speech "Isabella">> "The elevator eats a lawyer." <</speech>>
<<speech "Jasper">> "Symbolism." <</speech>>
They abandoned the film halfway through and sat on the floor discussing costumes. Around Isabella, Jasper did not feel reduced to whatever Nathan had first told her about him. She laughed when he was funny, disagreed when he was wrong, and gave him the same uncomplicated attention she gave people she had known much longer.
Jasper wanted that attention to keep turning toward him. He wanted Isabella to choose his company as naturally as she chose Nathan's, and eventually to count him among the people she called family.
He poured spiced tea from the thermos. Thornfield's essence moved with the steam: chamomile, worn leather, and warm pavement after rain.
Isabella drank while Jasper restarted the film.
The scent gathered gradually in the bright room. Each breath softened the small caution she kept around a man she knew partly through someone else. Jasper's presence began to feel established rather than recent, intimate rather than merely comfortable.
Isabella glanced toward the garment bag hanging beside the bedroom.
<<speech "Isabella">> "I did choose a costume." <</speech>>
<<speech "Jasper">> "The secrecy suggests either excellent or catastrophic." <</speech>>
<<speech "Isabella">> "Those are not opposites at a masquerade." <</speech>>
She returned topless in a black lace garter belt and matching thong, black fishnet stockings, strappy arm wraps, and clear platform heels. Under ordinary judgment, she would have shown him the outfit briefly and reached for a robe. The essence made being watched feel like another form of being known.
Isabella leaned against the wall with her back to him, looked over her shoulder, and spread one rounded cheek. She shifted her hips, turned toward him, raised her arms, and ran her hands through her dark hair before tracing them slowly down her sides.
<video src="img/Isabella/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Isabella">> "Excellent or catastrophic?" <</speech>>
<<speech "Jasper">> "You know the answer." <</speech>>
<<speech "Isabella">> "I know what I want you to say." <</speech>>
The scent followed them into the bedroom. Isabella removed the lace and sat fully nude on the light-green comforter, a small green pendant resting between her breasts.
<<speech "Isabella">> "Watch." <</speech>>
She spread her legs, slid two fingers inside herself, and rubbed her clit while looking at Jasper. Her mouth opened into soft moans and smiles. She tasted her fingers, resumed touching herself, then rolled onto her side, lifted one leg high, and reached back to display her ass and pussy.
<video src="img/Isabella/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When the scent thinned, Isabella pulled the green comforter around herself.
<<speech "Isabella">> "That was not how I expected movie night to end." <</speech>>
<<speech "Jasper">> "Do you regret it?" <</speech>>
She considered the question honestly.
<<speech "Isabella">> "No. I am more concerned by how little hesitation I felt." <</speech>>
Jasper left her with that concern—and with the memory of how natural everything had seemed while the rain-warm scent filled the room.
<<elseif _s is 2>>
<img src="img/Isabella/Corr1.jpg">
Isabella met Jasper again at the costume loft before the masquerade. The previous encounter belonged to the two of them, and she wanted to understand it without borrowing anyone else's judgment.
The projection room was dim. Isabella wore a black strappy top with bright pink nails catching the low light.
<<speech "Isabella">> "Your tea had a particular scent." <</speech>>
<<speech "Jasper">> "You remember it." <</speech>>
<<speech "Isabella">> "Chamomile. Leather. Rain on warm pavement." <</speech>> She watched him. <<speech "Isabella">> "I smelled it again on my cardigan after you left." <</speech>>
Jasper had treated the room's candle before she arrived. The same scent already curled through the dark.
<<speech "Jasper">> "Did it make the evening false?" <</speech>>
<<speech "Isabella">> "That is an unfair question." <</speech>>
<<speech "Jasper">> "It is the one you came to answer." <</speech>>
The essence loosened her suspicion not by erasing it, but by making trust feel more personally accurate. She remembered Jasper listening, teasing without cruelty, and wanting her rather than her connection to Kane.
<<speech "Isabella">> "I came because I wanted to see you again." <</speech>>
<<speech "Jasper">> "That answer is yours." <</speech>>
It was hers, altered by everything she breathed.
Isabella knelt in the black strappy top and wrapped one hand around Jasper's cock. She took him into her mouth, cheeks hollowing while her tongue worked the head. Saliva shone on her lips and chin. She pulled back to stroke him with a smile, then resumed with her eyes fixed upward.
<video src="img/Isabella/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She stood and wiped her mouth with one pink nail.
<<speech "Isabella">> "There is a second costume." <</speech>>
<<speech "Jasper">> "More excellent catastrophe?" <</speech>>
<<speech "Isabella">> "Much worse." <</speech>>
In the loft's neon bedroom, Isabella changed into a neon-green string bikini, bright yellow fishnet thigh-highs, and a silver choker. Pink butterfly sheets and peach pillows turned the room into a deliberate clash of colors.
She moved onto all fours and took Jasper deep again. Saliva stretched between her lips and his shaft when she pulled back. Isabella smiled with her tongue out, wrapped one hand around the base, and continued sucking before withdrawing completely to blow him a playful kiss.
<video src="img/Isabella/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Isabella">> "I still know this is moving too easily." <</speech>>
<<speech "Jasper">> "And you still came back." <</speech>>
<<speech "Isabella">> "Both things can be true." <</speech>>
The essence made the second truth feel far more important.
<<elseif _s is 3>>
<img src="img/Isabella/Corr3.jpg">
The masquerade filled an older campus building with masks, cheap lights, and music loud enough to make conversation optional. Isabella attended for herself, not as Director Kane's representative. Jasper came from Havenwood in a dark jacket and spent most of the evening finding her again whenever the crowd separated them.
Near the end, Isabella followed him into an empty office break room with closed blinds, a black leather chair, and a coffee maker ticking on the counter.
<<speech "Isabella">> "If somebody opens that door, I am blaming the haunted elevator." <</speech>>
<<speech "Jasper">> "Vertical isolation has consequences." <</speech>>
He poured coffee. Chamomile, leather, and rain rose through the bitter smell.
Isabella took the cup but did not drink.
<<speech "Isabella">> "You brought the scent here too." <</speech>>
<<speech "Jasper">> "Yes." <</speech>>
<<speech "Isabella">> "You want me unable to imagine leaving you." <</speech>>
<<speech "Jasper">> "I want you to stop treating what is between us like an error someone else has to rule on." <</speech>>
She should have set the cup down and walked back into the party. Instead, Isabella breathed. The essence had already settled through the room, deepening every private joke, every repeated meeting, and every moment in which Jasper had wanted only her attention.
<<speech "Isabella">> "If I choose you, this does not become proof that you beat my father or took something from Nathan." <</speech>>
<<speech "Jasper">> "I don't want proof." <</speech>> He touched the hand around her cup. <<speech "Jasper">> "I want you to keep coming back." <</speech>>
She drank the coffee.
<<speech "Isabella">> "Then the choice stays between us." <</speech>>
That acceptance completed the trust overload.
Isabella stripped and mounted Jasper in reverse cowgirl on the black leather chair. Completely nude, she rolled and bounced with her back to him while his hands gripped and spread her rounded ass. She glanced over her shoulder with parted lips, leaned forward against the chair arms, then arched and pushed back harder.
<video src="img/Isabella/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Jasper moved her onto the dark wooden desk in the adjoining office. Isabella lay on her back with one leg raised high. Her small breasts moved with each deep thrust; pink-painted nails rested on her stomach and thigh before she reached down to touch herself. Her continuous moan broke into a broad smile as wetness glistened between her legs.
<video src="img/Isabella/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Isabella remained Kane's adopted daughter and Nathan's childhood friend with those relationships intact.
Her bond with Jasper stayed personal. He became the person she sought for private jokes, late films, sex, and the parts of herself that did not belong to her family name. She began appearing at Havenwood because Jasper lived there, carrying terrible movies and staying after everyone else went to bed—not because the house needed a favor.
Jasper drew her into his family by making himself one of the people she chose to love. Thornfield's essence ensured that the choice always felt entirely her own.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Kylie/Normal.jpg">
The house was quiet that afternoon. Nathan had just come in from a long run with Kailey, and Kylie was on the couch with her phone, barefoot in an oversized halter top and sleep shorts, the picture of a lazy afternoon. She looked up when he trudged past, dripping sweat.
<<speech "Kylie">> "You're disgusting. Go shower before you ruin the couch." <</speech>> She wrinkled her nose, but her eyes were warm — the way they always were with him. <<speech "Kylie">> "There's leftover pizza in the fridge if you want it after." <</speech>>
<<speech "Nathan">> "You're a good $relation," <</speech>> he said, grinning, and ruffled her hair as he passed.
<<speech "Kylie">> "Ew. Sweat in my hair." <</speech>> She batted his hand away, laughing. <<speech "Kylie">> "Go. Shower. I mean it." <</speech>>
He headed upstairs, and Kylie went back to her phone, and for a few minutes everything was normal. Then the water started running, and she realized she'd forgotten to tell him about the thing their neighbour had called about — the garbage thing next month. She got up, padded down the hall, and stopped outside the bathroom. The door was cracked open a few inches — old house, finicky lock — and the steam drifted out, carrying the familiar cedarwood scent of his body wash.
And then something happened that Kylie would never be able to explain.
It wasn't Nathan. He was in the shower, unaware, under the spray. It wasn't anything he did. It was the air itself — the warmth that had been humming around him all day, the love spirit that moved with him without him knowing it, finally acting on its own. It curled out of the steam, reached for her, and wrapped around her chest like a hand closing on something soft.
Kylie's breath caught. Her dark eyes went wide. The hallway suddenly felt too small, too warm. She pressed her thighs together without thinking, a soft sound escaping her throat.
<<speech "Kylie">> "What…?" <</speech>> she whispered, confused, cheeks flushing hot.
She should have walked away. Instead she edged closer to the cracked door, heart hammering, until she could see through the narrow gap: the fogged glass of the shower, Nathan's blurred silhouette under the spray — broad shoulders, lean back, water sluicing down his spine. Her $malerel. The boy who'd carried her home on his back when she twisted her ankle at twelve, who still checked her room at night when she had nightmares even though she was nineteen. And the feeling flooding her chest wasn't guilt. It was need. Safety. Worship.
Her hand moved before her brain caught up — sliding beneath the waistband of her sleep shorts, fingers brushing over damp cotton. She bit her lip hard enough to sting.
<<speech "Kylie">> "This is wrong… he's my $malerel…" <</speech>> But the words felt hollow.
<video src="img/Kylie/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She watched him turn, water streaming over his chest. Her fingers slipped beneath the lace, circling her clit slowly — then faster — as she pictured those strong arms wrapping around her instead, holding her so tight nothing could ever hurt again. She whispered his name, barely audible over the water. Her other hand pressed flat against the wall for balance as her hips rocked forward into her touch, two fingers sliding inside, the wet sounds obscene in the quiet hallway. She pictured him stepping out, seeing her like this — wet, needy, looking up at him with the same trusting eyes she'd always had — and not turning away. Not judging. Just… taking care of her. Protecting her. Claiming her.
<video src="img/Kylie/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The fantasy tipped her over. She came with a choked, stifled moan, thighs clamping around her hand, body jerking against the wall. The shower shut off. Panic and lingering heat crashed together — she yanked her hand free, wiped it hastily on her shorts, and stumbled back just as the door swung open.
Nathan stepped out in a towel, water still dripping from his hair. He froze when he saw her — flushed cheeks, glassy eyes, the tremble in her legs.
<<speech "Nathan">> "Kylie…? You okay?" <</speech>>
<<speech "Kylie">> "I… I was just waiting to ask about lunch." <</speech>> The lie sounded weak even to her. <<speech "Kylie">> "But… can we talk? Later? When you're… dressed?" <</speech>>
Her dark eyes flicked down his chest — then back up — wide, needy, and for the first time not entirely innocent. Nathan nodded slowly, towel clutched tight, something uneasy flickering in his face.
<<speech "Nathan">> "Yeah. We'll talk." <</speech>>
Kylie backed away toward her room, legs shaky, pulse thundering — already knowing the conversation wouldn't be about lunch.
<<elseif _s is 2>>
Nathan woke slowly, the house still quiet in the early morning light. His sheets were tangled around his legs, warm and heavy, and for a hazy second he thought he was dreaming — the soft, wet heat enveloping his cock felt too perfect, too insistent to be real. Then he registered the gentle suction, the small, careful bobs of a head beneath the covers.
His eyes snapped open.
<<speech "Nathan">> "Who…?" <</speech>> His voice came out rough, thick with sleep and sudden, guilty heat.
The movement under the sheets paused for half a heartbeat — then continued, slower now, more deliberate. A small hand wrapped around the base of his cock, stroking what her mouth couldn't reach while her tongue swirled around the head. He pushed the sheet down just enough to see her.
<video src="img/Kylie/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<img src="img/Kylie/Corr2.jpg">
Kylie was between his legs, dark hair spilling across his thighs, expressive eyes looking up at him through her lashes. She wore only the oversized sleep shirt long since stolen from his drawer; it rode up her back, baring the curve of her ass. She pulled off just long enough to speak — voice small, breathy, trembling.
<<speech "Kylie">> "I couldn't sleep." <</speech>> Her tongue flicked out to trace the underside of his shaft before she continued. <<speech "Kylie">> "Kept thinking about the other day… about how you looked at me in the hallway. How you always protect me. I want to make you feel good too. Want to be close to you." <</speech>>
Nathan's hand moved — but not to push her away. It settled in her hair, cradling, even as he said it. <<speech "Nathan">> "Kylie… we shouldn't." <</speech>> His voice cracked. <<speech "Nathan">> "You're my $relation. This is — this isn't right. We need to stop." <</speech>>
But his hips lifted involuntarily, chasing the wet heat of her throat. And she didn't stop. She moaned around him, soft, needy, taking him deeper until her nose brushed his pelvis, tears pricking the corners of her eyes but refusing to pull back. One small hand stroked the base; the other slipped between her own thighs, rubbing frantic circles over her clit.
<<speech "Nathan">> "Fuck — Kylie — slow down —" <</speech>> His voice was rough, fingers tightening in her hair. <<speech "Nathan">> "You're too good at this… too perfect…" <</speech>>
<<speech "Kylie">> "Don't make me stop," <</speech>> she breathed against him. <<speech "Kylie">> "Please. I want this. I need it. Don't push me away." <</speech>>
The protest died on his tongue. He was the one who was supposed to be strong, the one who protected her — and he could feel himself losing. When she took him as deep as she could and swallowed around him, he came with a strangled groan, his hand fisting in her hair, his resistance crumbling to nothing.
A little later, when the morning light came up gold through the blinds, she slid from the bed to the floor — kneeling on the cool boards beside the mattress, nude, looking up at him through heavy-lidded eyes. He shifted to sit on the edge of the bed before her, took himself in hand, and stroked, and she tilted her face up in silent offering, lips soft and parted. He came across her upturned face — cheeks, lips, chin — and she knelt there on the floor and took it, blinking slowly, never once looking away from him.
<video src="img/Kylie/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He gathered her up into the bed, and she curled against his chest, small and warm, her head tucked under his chin.
<<speech "Kylie">> "I've wanted to do that for so long," <</speech>> she whispered, almost shy. <<speech "Kylie">> "Not just because you're my $malerel. Because you're you. The one who always keeps me safe." <</speech>>
Nathan wrapped both arms around her, heart hammering against hers — and he didn't say the words he knew he should. He kissed the top of her head instead, and something in his chest, the wall he'd been trying to hold up, gave another inch. <<speech "Nathan">> "You're safe with me." <</speech>> He said it like a promise — and like a confession. <<speech "Nathan">> "Always. No matter what." <</speech>>
Kylie nuzzled deeper into his neck, content to stay wrapped in his arms. And Nathan lay awake long after she fell asleep, staring at the ceiling, knowing he should feel worse than he did.
<<elseif _s is 3>>
<img src="img/Kylie/Corr3.jpg">
Nathan woke to the soft creak of his mattress and the warm weight of Kylie already straddling his hips. The room was dim — early morning light just beginning to leak around the curtains — but he could see her clearly: dark hair falling forward like a curtain, eyes locked on his face, petite frame bare except for the oversized sleep shirt now pushed up around her waist. She had tugged his boxers down just enough; he was already hard, nestled between her slick folds as she rocked slowly against him.
This time, when the thought came — we should stop — he didn't say it. The last of his resistance was gone, burned away somewhere between the hallway and the morning. She was his $relation, and she was his, and he couldn't make himself care that both of those things were true.
<<speech "Kylie">> "I couldn't wait anymore." <</speech>> Her voice was a trembling whisper, half plea, half confession. <<speech "Kylie">> "I kept thinking about the other night. About how you tasted, how you held me after. I need you inside me, Nathan. Need to feel you keep me safe… like you always do." <</speech>>
He didn't answer with words. His hands settled on her hips, thumbs brushing the sensitive skin above her pelvis — pulling her closer, not pushing her away. She lifted herself just enough to line him up, then sank down slowly, taking the head inside her with a soft gasp.
<<speech "Kylie">> "I want this. I want you." <</speech>>
She lowered herself fully, inch by inch, until he was buried to the hilt. They both groaned; she braced her small hands on his chest and began to ride — cowgirl, hips rolling in deep, tentative circles at first, then faster as she found the rhythm that made her breath hitch.
<video src="img/Kylie/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kylie">> "Oh god — Nathan — it's so much —" <</speech>> Her head tipped back, dark hair spilling down her back, petite breasts bouncing under the thin shirt. <<speech "Kylie">> "Feels like you're everywhere… keeping me… holding me…" <</speech>>
Nathan's hands slid up under the shirt, cupping her breasts, thumbs brushing her nipples until they hardened. He thrust up to meet her — gentle at first, then harder — matching her pace until the bed creaked.
<<speech "Nathan">> "You're so tight, baby… so perfect…" <</speech>> His voice was rough, no restraint left in it. <<speech "Nathan">> "Ride me just like that. Take what you need." <</speech>>
She shattered — back arching, a sharp cry tearing from her throat as her orgasm crashed through her, walls clamping down hard around him. He held her through it, then drew back just enough to lay her down beneath him on the white sheets — her long hair spreading across the pillow — and lifted her legs, holding them open as he sank back in, kneeling between her thighs, thrusting deep and possessive while his thumb found her oversensitive clit.
<<speech "Kylie">> "Yes — yes — like this —" <</speech>> She met him thrust for thrust, her hips tilting up to take him deeper. <<speech "Kylie">> "Don't stop… fill me… make me yours… please…" <</speech>>
Nathan drove harder, skin slapping against skin, the wet sounds obscene in the quiet room. <<speech "Nathan">> "Come again for me, Kylie." <</speech>> His voice was low, commanding, protective. <<speech "Nathan">> "Let me feel you. Let me keep you." <</speech>>
<video src="img/Kylie/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She came a second time — harder — crying out his name as he followed seconds later, burying himself deep and pulsing inside her until it leaked out around where they were joined. He collapsed over her, careful not to crush her, both of them panting and still locked together.
<<speech "Kylie">> "I've never felt this safe. This full." <</speech>> Her voice was small, trembling. <<speech "Kylie">> "I don't want anyone else to ever touch me. Just you. Always you." <</speech>>
Nathan kissed the back of her neck — soft, reverent — arms wrapping tighter around her waist. <<speech "Nathan">> "Just me," <</speech>> he murmured against her skin. <<speech "Nathan">> "You're safe. Protected. Mine. Forever." <</speech>>
Kylie sighed, content, curling back against him as the morning light slowly brightened the room. The sweet kid she'd been only a short time ago — the one who wrinkled her nose at sweat in her hair — was gone. She was his now, completely, and neither of them would ever want her back.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><<set $roster to [
{ id: "eva", name: "Eva", keyTo: "nathan", owner: null, avail: {nathan:3, josh:2, jasper:2, caldwell:2}, weakness: {love:3, lust:3, trust:2, will:2}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Protective"], imprint: null, desc: "21, Nathan's longtime best friend since high school. Warm, witty, fiercely loyal, extremely protective of Nathan (confronts bullies like Josh on his behalf), no romantic feelings—just deep platonic care and belief he deserves better." },
{ id: "kylie", name: "Kylie", keyTo: "nathan", owner: null, avail: {nathan:3, josh:1, jasper:2, caldwell:1}, weakness: {love:3, lust:3, trust:2, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Curious"], imprint: null, desc: "19, Nathan's teasing younger $relation. Youthful glow. Sweet, affectionate, curious, playfully sarcastic, deeply family-loyal and empathetic, idolizes Nathan as her protective big $malerel." },
{ id: "aria", name: "Aria", keyTo: "nathan", owner: null, avail: {nathan:3, josh:2, jasper:2, caldwell:2}, weakness: {love:4, lust:3, trust:2, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Curious"], imprint: null, desc: "20, Nathan's devoted girlfriend and Alina's trusted assistant in the campus wellness program—helps organize support sessions, greets students, and offers a calm listening ear. Soft natural beauty with a gentle, inviting gaze. Affectionate, empathetic, nurturing, slightly shy in crowds but deeply loving in private—loyal to a fault once she commits, a little insecure about not being 'enough,'—the kind of insecurity that only someone very patient could ever soothe." },
{ id: "isabella", name: "Isabella", keyTo: "nathan", owner: null, avail: {nathan:3, josh:2, jasper:2, caldwell:2}, weakness: {love:2, lust:2, trust:3, will:2}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Social Pillar"], imprint: null, desc: "20, Nathan's childhood friend; niece and adopted daughter of Director Maxwell Kane. Warm, intelligent, kind-hearted, principled, loyal to genuine people, values Nathan's authenticity. Frequent campus/family overlap." },
{ id: "chanel", name: "Chanel", keyTo: "jasper", owner: null, avail: {nathan:2, josh:2, jasper:3, caldwell:2}, weakness: {love:2, lust:3, trust:4, will:2}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Protective"], imprint: null, desc: "32, sociology professor and caretaker of Havenwood foster house. Deeply compassionate, patient, nurturing, self-sacrificing, dedicated to vulnerable youth." },
{ id: "carolina", name: "Carolina", keyTo: "jasper", owner: null, avail: {nathan:2, josh:2, jasper:3, caldwell:2}, weakness: {love:3, lust:2, trust:4, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Curious"], imprint: null, desc: "19, Jasper's foster sister at Havenwood. Sweet, creative, empathetic, affectionate, loyal, clings to stable bonds. Years of shared house life." },
{ id: "casey", name: "Casey", keyTo: "jasper", owner: null, avail: {nathan:1, josh:2, jasper:3, caldwell:1}, weakness: {love:3, lust:3, trust:4, will:2}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Wary"], imprint: null, desc: "22, former foster child of Havenwood who frequently returns to help. Sharp features. Sarcastic, sharp-tongued, defensive, secretly caring, uses meanness to hide vulnerability. Regular house visits." },
{ id: "melody", name: "Melody", keyTo: "jasper", owner: null, avail: {nathan:2, josh:1, jasper:3, caldwell:2}, weakness: {love:3, lust:2, trust:4, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Wary"], imprint: null, desc: "19, Jasper's shy new friend since his transfer last year and president of the campus book club—organizes cozy meetings in the library, discusses novels with passion, and quietly bonds with introverted members like Jasper over shared stories. Timid, thoughtful, bookish, empathetic—warm and insightful one-on-one, hides shyness behind quiet leadership." },
{ id: "alina", name: "Alina", keyTo: "josh", owner: null, avail: {nathan:2, josh:3, jasper:2, caldwell:1}, weakness: {love:2, lust:2, trust:3, will:1}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Social Pillar"], imprint: null, desc: "28, Elsa's close college friend and licensed psychologist who has tried multiple times (at Elsa's pleading) to counsel Josh, only for him to bail accusing her of condescension and judgment. Warm approachable features. Empathetic, patient, persistent, non-judgmental, and deeply compassionate—still holds hope for reaching Josh despite the rejections." },
{ id: "lily", name: "Lily", keyTo: "josh", owner: null, avail: {nathan:2, josh:3, jasper:2, caldwell:1}, weakness: {love:3, lust:3, trust:3, will:4}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Curious"], imprint: null, desc: "18, Josh's sweet, trusting younger $relation who idolizes him as her protective big $malerel—always defending him, rationalizing his anger, and sharing everyday home moments despite his rough edges. Affectionate, naive, playful, family-loyal, and a bit sheltered—sees the best in Josh and hates when people talk badly about him." },
{ id: "elsa", name: "Elsa", keyTo: "josh", owner: null, avail: {nathan:2, josh:3, jasper:2, caldwell:2}, weakness: {love:3, lust:3, trust:2, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Protective"], imprint: null, desc: "23–24, Josh's responsible older $relation who tries tirelessly to guide and fix him despite his resentment of her stern 'help,' while quietly staying friends with Nathan after Josh's fallout ruined their bond. Friendly, compassionate, stern only with Josh, loyal, guilt-ridden, and unwaveringly loving toward her family—feels the weight of Josh's issues heavily." },
{ id: "lana", name: "Lana", keyTo: "josh", owner: null, avail: {nathan:1, josh:3, jasper:1, caldwell:2}, weakness: {love:3, lust:3, trust:1, will:2}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Protective"], imprint: null, desc: "21, Josh's sharp-tongued cousin and ambitious law major—visits family often, debates everything at gatherings, and handles Josh's messes with eye-rolling impatience while secretly worrying about him. Intelligent, argumentative, loyal to family, driven by success—uses wit as a weapon, hides vulnerability behind sarcasm." },
{ id: "jade", name: "Jade", keyTo: null, owner: null, avail: {nathan:2, josh:2, jasper:2, caldwell:2}, weakness: {love:2, lust:2, trust:2, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Wary"], imprint: null, desc: "25, Elsa's diligent, practical friend in the circle—the organized voice of reason who plans hangouts, gives logical advice, and gently pushes Elsa toward healthier boundaries with Josh. Responsible, analytical, compassionate, perfectionistic, and deeply loyal—focused on career and friends while quietly hoping Josh improves." },
{ id: "kali", name: "Kali", keyTo: null, owner: null, avail: {nathan:2, josh:2, jasper:2, caldwell:2}, weakness: {love:3, lust:2, trust:3, will:2}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Curious"], imprint: null, desc: "24, Elsa's teasing empath in the friend group—the intuitive vibe-check queen who instantly reads emotions, lightens heavy moods with playful roasts, and gently coaxes Elsa to vent Josh guilt. Emotionally intuitive, mischievous, outgoing, empathetic, and deeply caring—keeps the group laughing while sensing hidden pain." },
{ id: "gina", name: "Gina", keyTo: null, owner: null, avail: {nathan:2, josh:2, jasper:2, caldwell:2}, weakness: {love:3, lust:4, trust:3, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Social Pillar"], imprint: null, desc: "23, the high-energy party girl in Elsa's circle who drags everyone out for dancing, bars, and chaos to help Elsa escape her Josh stress. Outgoing, fun-loving, compassionate-through-action, bold, loyal, and a bit reckless—always chasing the next good time. You can usually find her at Elsa's hangouts, behind the counter of the campus coffee shop, or throwing the parties everyone shows up to." },
{ id: "anya", name: "Anya", keyTo: "caldwell", owner: null, avail: {nathan:3, josh:2, jasper:2, caldwell:3}, weakness: {love:1, lust:3, trust:2, will:4}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Curious"], imprint: null, desc: "24, Dr. Caldwell's graduate teaching assistant and PhD student in Philosophy, working closely with him on grading, sections, and late-night 'study sessions' under his mentorship. Diligent, respectful, ambitious, slightly naive about power dynamics, trusts Caldwell's guidance implicitly." },
{ id: "rae", name: "Rae", keyTo: "caldwell", owner: null, avail: {nathan:2, josh:2, jasper:2, caldwell:3}, weakness: {love:3, lust:4, trust:3, will:4}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Wary"], imprint: null, desc: "20, rebellious sophomore who constantly ends up in Caldwell's detention or mandatory office hours for disruptions, skipping work, and attitude—making her one of his most frequent 'problem students.' Sarcastic, impulsive, stubborn, secretly insecure about academics, craves structure under strong authority despite pushing back. She's a fixture of Caldwell's detention room and mandatory office hours—far more hours of his company than either of them planned." },
{ id: "adriana", name: "Adriana", keyTo: "caldwell", owner: null, avail: {nathan:1, josh:2, jasper:2, caldwell:3}, weakness: {love:3, lust:3, trust:2, will:4}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Protective"], imprint: null, desc: "26, campus security guard under Dr. Caldwell's direct oversight as security manager—frequent shift briefings, training sessions, and late-night interactions give him constant private access. Assertive on duty, respectful to superiors, practical, observant, thrives under clear structure. Her shifts, briefings, and patrols all run through Caldwell's office—one of the familiar, steady fixtures of her working day." },
{ id: "keisha", name: "Keisha", keyTo: "caldwell", owner: null, avail: {nathan:2, josh:2, jasper:1, caldwell:3}, weakness: {love:3, lust:2, trust:3, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Protective"], imprint: null, desc: "28, young Vice Director of the university—assists Director Kane with administrative oversight, policy enforcement, and campus operations, often liaising with professors like Caldwell on disciplinary matters. Disciplined, fair-minded, stern but empathetic—enforces rules with a steady hand, quietly dedicated to the institution's success." },
{ id: "marie", name: "Marie", keyTo: null, owner: null, avail: {nathan:2, josh:2, jasper:2, caldwell:2}, weakness: {love:4, lust:3, trust:4, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Social Pillar"], imprint: null, desc: "21, cheerful ultra-popular campus connector—event organizer, Blake's dearest friend, on friendly terms with Anya—who treats everyone kindly, including Nathan and Josh despite their big fallout over old crushes on her. Optimistic, non-judgmental, social, upbeat, genuinely believes everyone can get along—oblivious to romantic tension and always inclusive. Old friendship keeps Nathan and Josh on her hello-list no matter what happened between them, and between campus events and Blake's circle she crosses paths with everyone." },
{ id: "blake", name: "Blake", keyTo: null, owner: null, avail: {nathan:2, josh:2, jasper:1, caldwell:2}, weakness: {love:3, lust:4, trust:3, will:2}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Wary"], imprint: null, desc: "21, top cheerleader and campus 'it girl'—popular, always in the spotlight, surrounded by admirers but keeping everyone at arm's length with her cold aloof demeanor. Perfectionistic, guarded, secretly lonely, not truly nasty—just self-protective after years of shallow attention and high expectations." },
{ id: "lacy", name: "Lacy", keyTo: null, owner: null, avail: {nathan:2, josh:2, jasper:2, caldwell:2}, weakness: {love:3, lust:4, trust:2, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Wary"], imprint: null, desc: "21, spoiled mayor's daughter and campus social queen—scheming, popular, always calculating alliances and favors while keeping everyone at arm's length with charm and icy distance. Entitled, manipulative, charismatic, secretly insecure about real power, views most people as tools—enjoys keeping Nathan and Josh orbiting her. She's at every party and event that matters, front and center, because that's simply where a queen stands." },
{ id: "claire", name: "Claire", keyTo: null, owner: null, avail: {nathan:2, josh:3, jasper:2, caldwell:2}, weakness: {love:2, lust:3, trust:2, will:2}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Social Pillar"], imprint: null, desc: "20, the sassy school star and campus 'it girl'—former close friend of Josh before their fallout, now keeps her distance but still crosses paths often at parties and events. Witty, quick-tongued, fiercely independent, loves being the center of attention—sassy banter is her armor, secretly hurt by past betrayals (especially Josh), uses confidence to mask vulnerability." },
{ id: "maya", name: "Maya", keyTo: null, owner: null, avail: {nathan:2, josh:2, jasper:3, caldwell:3}, weakness: {love:3, lust:4, trust:4, will:4}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Social Pillar"], imprint: null, desc: "25, young university secretary in the main admin office—helpful, cheerful face who remembers names, solves problems, and greets everyone warmly. Accommodating, patient, trusting, efficient, genuinely enjoys helping—assumes good intentions and rarely suspects motives." },
{ id: "caprice", name: "Caprice", keyTo: null, owner: null, avail: {nathan:2, josh:1, jasper:3, caldwell:2}, weakness: {love:3, lust:2, trust:4, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Wary"], imprint: null, desc: "24, solitary university librarian working quiet evening/closing shifts—sharp-witted, dryly sarcastic, often misinterpreted as aloof. Observant, guarded, prefers books to people, uses sarcasm as a shield, secretly craves real understanding." },
{ id: "adria", name: "Adria", keyTo: null, owner: null, avail: {nathan:2, josh:2, jasper:2, caldwell:2}, weakness: {love:2, lust:2, trust:2, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Wary"], imprint: null, desc: "21, charismatic Student Council President and campus leader—organizes events, mediates disputes, and represents the student body with confidence and poise. Ambitious, diplomatic, assertive, highly organized—always in control and respected by peers, but carries quiet pressure to be perfect." },
{ id: "madi", name: "Madi", keyTo: null, owner: null, avail: {nathan:2, josh:2, jasper:2, caldwell:2}, weakness: {love:4, lust:4, trust:4, will:4}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Curious"], imprint: null, desc: "20, petite, extremely curious journalism-club member and campus reporter—always chasing leads, interviewing everyone, making friends across every group. Radiant 'full of life' smile. Tenacious, optimistic, friendly, open-minded, a bit naive—believes everyone deserves to be heard." },
{ id: "kailey", name: "Kailey", keyTo: null, owner: null, avail: {nathan:3, josh:2, jasper:1, caldwell:2}, weakness: {love:2, lust:2, trust:3, will:2}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Curious"], imprint: null, desc: "20, Nathan's cheerful next-door neighbour and varsity track athlete—always training early mornings, waving across the fence, or stopping by for casual chats on the porch. Competitive, upbeat, disciplined, fiercely independent—pushes herself hard in sports and life, but quietly craves someone who can match her drive and offer steady support without trying to slow her down." },
{ id: "lulu", name: "Lulu", keyTo: null, owner: null, avail: {nathan:3, josh:2, jasper:2, caldwell:2}, weakness: {love:3, lust:4, trust:3, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Curious"], imprint: null, desc: "20, Nathan's reliable study partner and classmate in literature—meets him regularly in the library or campus cafés to review notes, discuss readings, and prepare for exams. Diligent, thoughtful, slightly shy but warm once comfortable—loves deep conversations about books and ideas, quietly admires Nathan's insight and kindness, a bit self-conscious about her curves but carries herself with gentle confidence." },
{ id: "savannah", name: "Savannah", keyTo: null, owner: null, avail: {nathan:2, josh:2, jasper:2, caldwell:2}, weakness: {love:2, lust:2, trust:4, will:3}, stages: {nathan:0, josh:0, jasper:0, caldwell:0}, shieldTimer: 0, shieldedBy: null, traits: ["Social Pillar"], imprint: null, desc: "19, the ultimate sunshine friend of everyone on campus—always smiling, always positive, the girl who greets strangers like old friends and makes every group feel warmer. Bubbly, kind-hearted, optimistic, deeply empathetic, loves making others feel included." }
]>>/* 4. SOCIAL MAP (Updated with New NPCs) */
<<set $socialMap to {
"eva": ["isabella", "marie", "gina", "aria", "kailey"],
"kylie": ["lily", "elsa", "madi", "lulu", "aria"],
"isabella": ["marie", "blake", "lacy", "claire", "aria"],
"chanel": ["casey", "maya", "adriana", "keisha", "adria"],
"carolina": ["casey", "caprice", "jade", "lulu", "savannah"],
"casey": ["anya", "maya", "chanel", "keisha", "lana"],
"elsa": ["jade", "kali", "gina", "claire", "savannah"],
"lily": ["kylie", "elsa", "alina", "kailey", "gina"],
"alina": ["lily", "anya", "rae", "lana", "aria"],
"adriana": ["alina", "chanel", "maya", "lana", "keisha"],
"anya": ["rae", "carolina", "caprice", "claire", "lulu"],
"rae": ["blake", "lacy", "kali", "anya", "alina"],
"gina": ["elsa", "kali", "jade", "eva", "lily"],
"jade": ["caprice", "kali", "elsa", "melody", "lulu"],
"kali": ["gina", "jade", "elsa", "savannah"],
"marie": ["eva", "blake", "isabella", "savannah", "claire"],
"blake": ["isabella", "marie", "lacy", "aria", "claire"],
"lacy": ["madi", "rae", "blake", "claire", "isabella"],
"maya": ["adriana", "chanel", "caprice", "lana", "adria"],
"madi": ["lacy", "kylie", "carolina", "savannah", "melody"],
"caprice": ["jade", "kylie", "eva", "lulu", "melody"],
"aria": ["eva", "kylie", "isabella", "blake", "alina"],
"lulu": ["melody", "caprice", "jade", "eva", "carolina"],
"claire": ["lacy", "blake", "marie", "isabella", "anya"],
"savannah": ["marie", "madi", "carolina", "elsa", "kali"],
"keisha": ["adriana", "maya", "casey", "chanel", "adria"],
"melody": ["jade", "madi", "lulu", "adria", "caprice"],
"kailey": ["aria", "eva", "savannah", "lily", "claire"],
"lana": ["keisha", "claire", "maya", "alina", "adria"],
"adria": ["melody", "adriana", "maya", "chanel", "keisha"]
}>>
/* --- GROUP HELPER FUNCTIONS --- */
<<run
setup.getGroupBonus = function(masterId) {
var bonus = 0;
var groups = State.variables.groups;
var roster = State.variables.roster;
Object.keys(groups).forEach(key => {
var members = groups[key].members;
// A group is "Fully Conquered" if the Master owns everyone at Stage 3
var isFullyOwned = members.every(mID => {
var npc = roster.find(c => c.id === mID);
return npc && npc.owner === masterId && npc.stages[masterId] >= 3;
});
if (isFullyOwned) bonus += 1;
});
return bonus;
};
setup.getNPCGroup = function(npcId) {
// Finds the first group an NPC belongs to
return Object.keys(State.variables.groups).find(key =>
State.variables.groups[key].members.includes(npcId)
);
};
>>
/* --- DEFINED GROUPS --- */
<<set $groups to {
"familyBond": { name: "Family Bond", members: ["elsa", "lily", "lana"] },
"elsasCircle": { name: "Elsa's Circle", members: ["elsa", "gina", "kali", "jade"] },
"nathansFriends": { name: "Nathan's Friends", members: ["lulu", "kailey", "elsa"] },
"campusElites": { name: "Campus Elites", members: ["isabella", "marie", "lacy", "blake", "claire"] },
"socialLife": { name: "Social Life", members: ["rae", "blake", "lacy", "kali", "gina"] },
"havenwoodHousehold": { name: "Havenwood Household", members: ["chanel", "casey", "carolina"] },
"nathansInnerCircle": { name: "Nathan's Inner Circle", members: ["eva", "marie", "isabella", "aria"] },
"supportStaff": { name: "Support Staff", members: ["alina", "maya", "anya", "aria"] },
"theKind": { name: "The Kind", members: ["aria", "lily", "carolina", "kali", "kylie"] },
"staffLounge": { name: "Staff Lounge", members: ["chanel", "anya", "adriana", "keisha"] },
"sharpTongued": { name: "Sharp-Tongued", members: ["casey", "lana", "caprice"] },
"morningSunshines": { name: "The Morning Sunshines", members: ["madi", "savannah", "kailey", "marie"] },
"literarySociety": { name: "The Literary Society", members: ["melody", "caprice", "lulu", "jade"] },
"gossipGirls": { name: "Gossip Girls", members: ["gina", "madi", "claire", "savannah"] }
}>>
/* 5. KANE COMMENTS */
<<set $kaneComments to {
"eva": {
"nathan": "The best friend who loved too much to say no. A textbook case of devotion turned possessive.",
"josh": "From fierce protector to mindless addict. Exquisite degradation.",
"jasper": "She trusted the wrong man. Now she's a perfect anchor for his lies.",
"caldwell": "Her fire was high-energy, but you've calibrated her into a silent doll."
},
"kylie": {
"nathan": "The $relation bond, weaponized. A masterpiece of possessive care.",
"josh": "Purity burned away in your fever, Josh. She's barely recognizable.",
"jasper": "She looks for her $malerel in Jasper's eyes. A fascinating substitution.",
"caldwell": "The younger subjects always take the imprint so cleanly. Total compliance."
},
"isabella": {
"nathan": "Childhood friend turned eternal guardian. Love made her a sentinel.",
"josh": "My own niece reduced to a craving shell. Even lineage bends to lust.",
"jasper": "She sought stability. Jasper gave her chains disguised as safety.",
"caldwell": "A subject of privilege, now a perfect instrument. The Directorate approves."
},
"chanel": {
"nathan": "The caretaker who became the cared-for. Devotion inverted.",
"josh": "All that nurturing drowned in raw need. She begs for use now.",
"jasper": "She gave trust to everyone. Now she gives it only to him.",
"caldwell": "A mind built to guide youth, now guided by his voice alone."
},
"carolina": {
"nathan": "Foster sister who found a new older brother. Love filled the void.",
"josh": "Creative little thing, now only creative at pleasing him.",
"jasper": "She clung to bonds. He gave her one she'll never break.",
"caldwell": "Petite and impressionable. The imprint took hold in under three sessions."
},
"casey": {
"nathan": "Defensive shell cracked open by genuine care. She's soft underneath.",
"josh": "Sarcasm burned away. Now she only speaks when told to.",
"jasper": "She hid behind meanness. He gave her a place to be vulnerable.",
"caldwell": "A former subject who returned… only to be recalibrated permanently."
},
"alina": {
"nathan": "The psychologist who needed saving. Love reversed the roles.",
"josh": "All that empathy drowned in desire. She diagnoses only his needs now.",
"jasper": "She tried to understand everyone. Now she only understands him.",
"caldwell": "A mind trained to heal, now trained to obey. Elegant symmetry."
},
"lily": {
"nathan": "Innocence protected too fiercely. Now she protects only Nathan.",
"josh": "The little $relation who idolized you, Josh. Now she worships you.",
"jasper": "She wanted a big $malerel who wouldn't leave. He gave her one.",
"caldwell": "Youthful trust is the easiest to overwrite. Total compliance."
},
"elsa": {
"nathan": "The older $relation who carried guilt. Love lifted it… and bound her.",
"josh": "Responsible, stern Elsa reduced to a needy wreck. Delicious.",
"jasper": "She tried to fix everyone. Now she's fixed to him.",
"caldwell": "Guilt-ridden caretaker. He relieved her of the burden. Permanently."
},
"jade": {
"nathan": "Practical mind overwhelmed by devotion. She plans only for Nathan now.",
"josh": "Logical girl turned illogical slut. Lust overrides reason every time.",
"jasper": "She valued stability. He gave her the only stability she'll ever need.",
"caldwell": "Perfectionist tendencies make her an ideal subject. Flawless calibration."
},
"kali": {
"nathan": "The empath who read everyone. Now she only reads Nathan's needs.",
"josh": "Teasing little thing, now begging instead of roasting. Perfect.",
"jasper": "She sensed hidden pain. Now she only senses his.",
"caldwell": "Intuitive mind reduced to simple obedience. Elegant reduction."
},
"gina": {
"nathan": "Party girl who found a deeper high in Nathan's care.",
"josh": "High-energy chaos turned into high-energy craving. She's his.",
"jasper": "She chased fun. He gave her something permanent.",
"caldwell": "Reckless energy recalibrated into perfect compliance. Textbook."
},
"anya": {
"nathan": "Diligent TA who found devotion beyond academics.",
"josh": "Respectful student turned desperate whore. Lust overrides hierarchy.",
"jasper": "She trusted authority. Now she trusts only him.",
"caldwell": "My own TA. The irony is exquisite. She serves a new master now."
},
"rae": {
"nathan": "Defiant rebel softened by genuine care. She fights for Nathan now.",
"josh": "Sarcastic brat turned begging pet. Lust broke her fast.",
"jasper": "She craved structure. He gave her one she'll never escape.",
"caldwell": "Problem student fully solved. Total recalibration achieved."
},
"adriana": {
"nathan": "Assertive guard who found safety in Nathan's protection.",
"josh": "Strong woman reduced to a needy slut. Lust humbles the proud.",
"jasper": "She thrived under orders. Now she takes his without question.",
"caldwell": "My own security chief. Obedience was always her natural state."
},
"marie": {
"nathan": "Cheerful connector who finally found someone worth connecting to.",
"josh": "Optimistic party girl turned desperate addict. Lust devours hope.",
"jasper": "She believed everyone could get along. Now she only gets along with him.",
"caldwell": "Social butterfly clipped. She no longer flies—only obeys."
},
"blake": {
"nathan": "Aloof perfectionist who finally let someone in.",
"josh": "Untouchable cheerleader turned humiliated pet. Pride shattered.",
"jasper": "Guarded heart opened by trust. She's his to keep safe.",
"caldwell": "Perfectionist recalibrated into flawless obedience."
},
"lacy": {
"nathan": "Spoiled queen who found something money can't buy.",
"josh": "Entitled bitch turned begging whore. Lust levels the elite.",
"jasper": "She calculated alliances. Now she only allies with him.",
"caldwell": "Privilege erased. She serves without question now."
},
"maya": {
"nathan": "Helpful secretary who found someone worth helping forever.",
"josh": "Cheerful assistant turned needy slut. Lust overrides service.",
"jasper": "She assumed good intentions. Now she assumes his.",
"caldwell": "Administrative efficiency redirected to perfect obedience."
},
"caprice": {
"nathan": "Sarcastic loner who found someone worth opening up to.",
"josh": "Guarded librarian turned desperate whore. Lust cracks shells.",
"jasper": "She hid behind sarcasm. He gave her a place to be real.",
"caldwell": "Quiet mind fully imprinted. Silence is her natural state."
},
"madi": {
"nathan": "Curious reporter who found the only story worth chasing.",
"josh": "Tenacious girl turned mindless addict. Lust buries curiosity.",
"jasper": "She wanted to understand everyone. Now she only understands him.",
"caldwell": "Open mind closed to everything except his commands."
},
/* New girls added below */
"aria": {
"nathan": "Devoted girlfriend who found the only love worth her entire heart. Insecurity erased by possessive care.",
"josh": "Empathetic listener turned desperate whore. Lust overrides her nurturing instinct.",
"jasper": "Trusted assistant who now trusts only him. Loyalty redirected to one master.",
"caldwell": "Wellness aide recalibrated into flawless obedience. Empathy suppressed."
},
"melody": {
"nathan": "Shy book club president who found someone worth opening every chapter for.",
"josh": "Timid reader turned mindless slut. Curiosity replaced by raw need.",
"jasper": "Quiet leader who now follows only his story. Shyness turned to complete trust.",
"caldwell": "Literary mind imprinted for silence. Books replaced by commands."
},
"kailey": {
"nathan": "Athletic neighbour who found steady support worth more than any finish line.",
"josh": "Disciplined runner turned needy whore. Independence burned away by lust.",
"jasper": "Independent competitor who now runs only toward him. Drive redirected.",
"caldwell": "Competitive body recalibrated into perfect compliance. Will overwritten."
},
"lulu": {
"nathan": "Reliable study partner who found the only lesson worth mastering—his love.",
"josh": "Thoughtful reader turned desperate slut. Curiosity buried under raw desire.",
"jasper": "Quiet intellectual who now only studies him. Shyness turned to trust.",
"caldwell": "Literary mind imprinted for obedience. Analysis replaced by submission."
},
"savannah": {
"nathan": "Sunshine friend who found the only light worth following forever.",
"josh": "Carefree optimist turned mindless addict. Joy replaced by raw craving.",
"jasper": "Empathetic connector who now connects only to him. Warmth turned to trust.",
"caldwell": "Radiant spirit recalibrated into silent obedience. Empathy suppressed."
},
"claire": {
"nathan": "Sassy school star who found someone worth dropping her armor for.",
"josh": "Former friend turned desperate whore. Wit shattered by lust.",
"jasper": "Quick-tongued leader who now speaks only for him. Confidence turned to trust.",
"caldwell": "Charismatic presence imprinted for perfect compliance. Armor erased."
},
"keisha": {
"nathan": "Stern Vice Director who found protective care worth surrendering authority for.",
"josh": "Disciplined administrator turned needy slut. Control burned away by lust.",
"jasper": "Fair-minded leader who now follows only him. Empathy turned to trust.",
"caldwell": "Executive mind recalibrated into flawless obedience. Authority redirected."
},
"adria": {
"nathan": "Charismatic president who found someone worth relinquishing command for.",
"josh": "Poised leader turned desperate whore. Control shattered by lust.",
"jasper": "Ambitious organizer who now organizes only for him. Drive redirected.",
"caldwell": "Student authority imprinted for total compliance. Leadership erased."
},
"lana": {
"nathan": "Sharp-tongued cousin who found someone worth softening her wit for.",
"josh": "Ambitious law major turned mindless slut. Wit buried under raw need.",
"jasper": "Argumentative intellect who now argues only for him. Loyalty redirected.",
"caldwell": "Driven mind imprinted for perfect obedience. Ambition suppressed."
}
}>><h1 style="text-align:center; color: #ff00ff; text-shadow: 0 0 20px #ff00ff;">THE FINAL HARVEST</h1>
<div class="narrative" style="border: 2px solid #ff00ff; padding: 20px; background: #111; line-height: 1.6;">
<p>The resistance has ended. With the fall of the other Catalysts, the frequency of <<print $vices[$winnerID].weapon.toUpperCase()>> now saturates every inch of Eldridge Hollow. There is no other voice to listen to, no other safety to find, and no other master to serve.</p>
<p>For the remaining subjects, the world begins to blur. The memories of who they were—and who they belonged to—are overwritten by the absolute resonance of <strong><<print $vices[$winnerID].name>></strong>.</p>
<<if $winnerID === "nathan">>
<p>Nathan walks through the quiet halls. He doesn't need to speak; the girls simply drift toward him, eyes welling with a sudden, overwhelming need to be held, to be loved, to be <em>his</em>. The fear of the past weeks melts into a singular, possessive devotion.</p>
<<elseif $winnerID === "josh">>
<p>Josh doesn't hunt anymore. He simply waits. One by one, the girls who thought they were safe find themselves shivering, their bodies burning with an unquenchable fever. They crawl to his door, their pride long gone, begging for the only relief left in the world.</p>
<<elseif $winnerID === "jasper">>
<p>Jasper expands the walls of Havenwood until they encompass the entire campus. Every remaining girl feels a sudden, profound certainty: they are safe only with him. Their autonomy feels like a heavy weight they are eager to drop at his feet. They are a family now. His family.</p>
<<elseif $winnerID === "caldwell">>
<p>Caldwell sits at his monitors and types a final command. Across the campus, the remaining "individuals" freeze. Their eyes go blank. The internal struggle for will ends in a perfect, silent vacuum. They are no longer people; they are assets. And they are ready for use.</p>
<</if>>
</div>
<hr style="border-color: #333; margin: 30px 0;">
<h2 style="text-align: center; color: #fff;">FORCE SYNCHRONIZATION IN PROGRESS...</h2>
<div class="transfer-grid" style="display: flex; flex-wrap: wrap; gap: 30px; justify-content: center;">
<<for _npc range $leftoverNPCs>>
<<silently>>
<<set _idx to $roster.findIndex(c => c.id === _npc.id)>>
<<set $roster[_idx].stages[$winnerID] to 3>>
<<set $roster[_idx].owner to $winnerID>>
<</silently>>
<div style="width: 100%; border: 2px solid #ff00ff; border-radius: 12px; background: #000; padding: 20px; text-align: center;">
<h3 style="color: #ff00ff; margin: 0 0 15px 0;"><<print _npc.name>></h3>
<img @src="'img/' + _npc.name + '/PortraitCorr.jpg'" style="width: 150px; border-radius: 8px; margin-bottom: 15px;">
<span style="display: block; font-size: 0.7em; color: #888; margin-bottom: 15px;">RESONANCE: 100%</span>
<<videoWall _npc.name 3 $winnerID>>
</div>
<</for>>
</div>
<div style="text-align: center; margin-top: 40px; padding-bottom: 50px;">
<<link "Review the Completed Network" "Finale_Intro">><</link>>
</div><h1 style="text-align:center; color: #ff0000; text-shadow: 0 0 10px #ff0000;">NARRATIVE CONFIGURATION</h1>
<div class="narrative" style="max-width: 700px; margin: 0 auto; border: 2px solid #444; padding: 30px; background: #0a0a0a; line-height: 1.8;">
<h3 style="color: #ffcc00; text-align: center;">⚠ THEMATIC DISCLAIMER</h3>
<p>This game contains elements of <strong>NTR (Netorare/Cuckolding)</strong> and competitive corruption. You will be playing against other Masters who have the ability to target, corrupt, and steal the women closest to you. Likewise, your success depends on your ability to steal their "Keys" and claim them for your own Vice.</p>
<p>If you are uncomfortable with themes of infidelity, loss of loved ones to rivals, or forced corruption, please exit now.</p>
<hr style="border-color: #333;">
<h3 style="color: #00ffcc;">RELATIONSHIP SETTINGS</h3>
<p>Define the nature of the relationship between <strong>Nathan & Kylie</strong> and <strong>Josh, Lily, & Elsa</strong>.</p>
<div style="background: #1a1a1a; padding: 20px; border-radius: 10px; border: 1px solid #00ffcc;">
<div style="margin-bottom: 14px;">
<label style="color: #00ffcc; font-weight: bold;">Relationship Term (stepsister — e.g. roommate):</label><br>
<<textbox "$relation" "stepsister">>
</div>
<div>
<label style="color: #ffcc00; font-weight: bold;">Relationship Term (stepbrother — e.g. roommate):</label><br>
<<textbox "$malerel" "stepbrother">>
</div>
<p style="font-size: 0.8em; color: #888; margin-top: 12px;">
Leave both at their defaults if you're happy with "stepsister / stepbrother".
</p>
</div>
</div>
<div style="text-align: center; margin-top: 40px; padding-bottom: 50px;">
<<link "Confirm and Begin Prologue">>
/* This script updates the roster descriptions and Kane's finale commentary immediately,
so the chosen terms show up in the Dossiers/Bios and the Finale screens */
<<run $roster.forEach(c => {
if (["kylie", "lily", "elsa"].includes(c.id)) {
c.desc = c.desc.replace(/\$relation/gi, $relation || "stepsister");
c.desc = c.desc.replace(/\$malerel/gi, $malerel || "stepbrother");
}
})>>
<<run Object.keys($kaneComments).forEach(id => Object.keys($kaneComments[id]).forEach(m => {
$kaneComments[id][m] = $kaneComments[id][m].replace(/\$relation/gi, $relation || "stepsister").replace(/\$malerel/gi, $malerel || "stepbrother");
}))>>
<<goto "ProloguePart1">>
<</link>>
</div>/* EVENT 1: RIVAL TAUNT
A non-Nathan master mocks another active master. */
<<if _eID is 1>>
<<set _senderPool to ["josh", "jasper", "caldwell"].filter(id => !$vices[id].isEliminated)>>
<<set _victimPool to _activeMasters.filter(id => _senderPool.includes(id) ? false : true)>>
/* If no valid victim from non-senders, allow any active master as victim */
<<if _victimPool.length is 0>>
<<set _victimPool to _activeMasters.filter(id => !_senderPool.includes(id) || _activeMasters.length gte 2)>>
<</if>>
<<if _senderPool.length gte 1 and _activeMasters.length gte 2>>
<<set _taunterID to _senderPool.random()>>
<<set _victimPool to _activeMasters.filter(id => id !== _taunterID)>>
<<set _victimID to _victimPool.random()>>
<<set _theirGirls to $roster.filter(c => c.stages[_taunterID] >= 1
and !["nathan", "josh", "jasper", "caldwell"].some(id => id !== _taunterID and c.stages[id] gte 3))>>
<<if _theirGirls.length gt 0>>
<<set _girl to _theirGirls.random()>>
/* Mocking files show the actual corruption tier reached by
the taunting master, never a generic portrait. */
<<set _mockTier to Math.max(1, Math.min(3, _girl.stages[_taunterID]))>>
<<set _imgFile to "Corr" + _mockTier + ".jpg">>
<<set $vices[_victimID].revengeAgainst to _taunterID>>
/* A taunt starring the victim's own Main Key girl is a personal
insult: it guarantees a Grudge, not just Revenge. Survival,
Elimination, and Kane's Quest still outrank the hunt. */
<<if $vices[_victimID].keys.includes(_girl.id)>>
<<set $vices[_victimID].grudge to _taunterID>>
<<set $vices[_victimID].grudgeTimer to 3>>
<<run setup.updateStrategy(_victimID)>>
<</if>>
<<set _newEntry to
"<div style='border: 1px solid #ff0000; padding: 15px; background: #200; margin-bottom:10px;'>" +
"<strong style='color:red'>Rival Taunt:</strong> " + $vices[_taunterID].name +
" sends a mocking photo of " + _girl.name + " to " + $vices[_victimID].name + ".<br><br>" +
"<img src='img/" + _girl.name + "/" + _imgFile + "' style='width:100%; max-width:300px; display:block; margin:0 auto; border:2px solid red; border-radius:4px; object-fit:cover; object-position:top;'>"
+ ($vices[_victimID].keys.includes(_girl.id)
? "<br><strong style='color:#ff4444'>" + $vices[_victimID].name + " has taken a personal grudge against " + $vices[_taunterID].name + ".</strong>"
: "") +
"</div>"
>>
<</if>>
<</if>>
/* EVENT 2: GOSSIP CHAIN
Rumours spread about an active master, giving them a find bonus. */
<<elseif _eID is 2>>
<<set _availNPCs to $roster.filter(c => Object.values(c.stages).every(s => s < 3))>>
<<if _availNPCs.length gte 2>>
<<run _availNPCs.shuffle()>>
<<set $gossipChain to { master: _mID, npc: _availNPCs[1].id }>>
<<set _newEntry to
"<div style='border-left: 3px solid #ffcc00; padding-left: 10px; margin-bottom:10px;'>" +
"<strong style='color:#ffcc00'>Rumors:</strong> Whispers tie " + $vices[_mID].name +
" to " + _availNPCs[1].name + " — he will have no trouble locating her.</div>"
>>
<</if>>
/* EVENT 3: DEVOTION
An owned NPC sends a private message. Small gauge gain.
Only fires if _mID has at least 1 NPC. */
<<elseif _eID is 3>>
<<set _girls to $roster.filter(c => c.stages[_mID] >= 1
and !["nathan", "josh", "jasper", "caldwell"].some(id => id !== _mID and c.stages[id] gte 3))>>
<<if _girls.length gt 0>>
<<set _sender to _girls.random()>>
<<run adjustGauge(_mID, 5)>>
<<set _newEntry to
"<div style='border-left: 3px solid #00ffcc; padding-left: 10px; margin-bottom:10px;'>" +
"<strong style='color:#00ffcc'>Devotion:</strong> " + _sender.name +
" sends a private file to " + $vices[_mID].name + ". (+5% Gauge)</div>"
>>
<</if>>
/* EVENT 4: RECOMMENDATION
A Stage 2+ NPC refers a friend. Only fires if _mID has Stage 2+ NPC. */
<<elseif _eID is 4>>
<<set _referrers to $roster.filter(c => c.stages[_mID] >= 2
and !["nathan", "josh", "jasper", "caldwell"].some(id => id !== _mID and c.stages[id] gte 3))>>
<<if _referrers.length gt 0>>
<<set _sender to _referrers.random()>>
<<set _friends to $socialMap[_sender.id] || []>>
<<set _validFriends to $roster.filter(c => _friends.includes(c.id) and c.stages[_mID] < 3 and Object.values(c.stages).every(s => s < 3))>>
<<if _validFriends.length gt 0>>
<<set _fTarget to _validFriends.random()>>
<<run $vices[_mID].spiteNPCs.pushUnique(_fTarget.id)>>
<<set _newEntry to
"<div style='border-left: 3px solid #ff66cc; padding-left: 10px; margin-bottom:10px;'>" +
"<strong style='color:#ff66cc'>Recommendation:</strong> " + _sender.name +
" suggests " + _fTarget.name + " as a new subject for " + $vices[_mID].name + ".</div>"
>>
<</if>>
<</if>>
/* EVENT 5: FRICTION
An active master becomes fixated on a random NPC. */
<<elseif _eID is 5>>
<<set _target to $roster.filter(c => Object.values(c.stages).every(s => s < 3)).random()>>
<<run $vices[_mID].spiteNPCs.pushUnique(_target.id)>>
<<set _newEntry to
"<div style='border-left: 3px solid #ffaa00; padding-left: 10px; margin-bottom:10px;'>" +
"<strong style='color:#ffaa00'>Friction:</strong> " + $vices[_mID].name +
" is focusing aggressively on " + _target.name + ".</div>"
>>
/* EVENT 6: MANDATORY DETENTION
A student NPC is summoned. Caldwell gets 100% find if active.
Event still appears even if Caldwell is eliminated (neutral admin
event), but the find bonus only applies if Caldwell acts. */
<<elseif _eID is 6>>
<<set _students to $roster.filter(c => !["chanel", "anya", "alina", "adriana", "maya", "caprice", "keisha"].includes(c.id) and Object.values(c.stages).every(s => s < 3))>>
<<if _students.length gt 0>>
<<set _target to _students.random()>>
<<set $detentionTarget to _target.id>>
<<set _newEntry to
"<div style='border-left: 3px solid #ff00ff; padding-left: 10px; margin-bottom:10px;'>" +
"<strong style='color:#ff00ff'>Detention:</strong> Caldwell has called " + _target.name +
" in for a disciplinary review — she will be easy to find today.</div>"
>>
<</if>>
/* EVENT 7: OFFLINE
A random unshielded NPC becomes unreachable for one turn. */
<<elseif _eID is 7>>
<<set _target to $roster.filter(c => c.shieldTimer === 0).random()>>
<<if _target>>
<<set _target.shieldTimer to 1>>
<<set _target.shieldedBy to "SYSTEM">>
<<set _newEntry to
"<div style='border-left: 3px solid #888; padding-left: 10px; margin-bottom:10px;'>" +
"<strong>Offline:</strong> " + _target.name + " is currently unreachable.</div>"
>>
<</if>>
/* EVENT 8: OMEN
An NPC feels a pull toward an active master. */
<<elseif _eID is 8>>
<<set _npc to $roster.filter(c => Object.values(c.stages).every(s => s < 3)).random()>>
<<set $omenData to { master: _mID, npc: _npc.id }>>
<<set _newEntry to
"<div style='border-left: 3px solid #00ffcc; padding-left: 10px; margin-bottom:10px;'>" +
"<strong style='color:#00ffcc'>Omen:</strong> " + _npc.name +
" feels a sudden, inexplicable pull toward " + $vices[_mID].name + ".</div>"
>>
/* EVENT 9: RESONANCE PEAK
An active master's power surges. */
<<elseif _eID is 9>>
<<run adjustGauge(_mID, 10)>>
<<set _newEntry to
"<div style='border-left: 3px solid gold; padding-left: 10px; margin-bottom:10px;'>" +
"<strong style='color:gold'>Resonance:</strong> " + $vices[_mID].name +
" is peaking in strength. (+10% Gauge)</div>"
>>
/* EVENT 10: DRAIN
Maintaining control takes a toll on an active master. */
<<elseif _eID is 10>>
<<run adjustGauge(_mID, -5)>>
<<set _newEntry to
"<div style='border-left: 3px solid grey; padding-left: 10px; margin-bottom:10px;'>" +
"<strong style='color:grey'>Drain:</strong> The effort of maintaining control is weighing on " +
$vices[_mID].name + ". (-5% Gauge)</div>"
>>
/* EVENT 11: GROUP ASSIGNMENT
Two students forced into a session with an active master. */
<<elseif _eID is 11>>
<<set _students to $roster.filter(c => !["chanel", "anya", "alina", "adriana", "maya", "caprice", "keisha"].includes(c.id) and Object.values(c.stages).every(s => s < 3))>>
<<if _students.length gte 2>>
<<set _group to _students.randomMany(2)>>
<<run $groupAssignments.push({ master: _mID, targets: [_group[0].id, _group[1].id], timer: 3 })>>
/* The university arranges the joint session — never the vice forcing
it. Caldwell's faculty position gets its own oversight variant. */
<<if _mID === "caldwell">>
<<set _newEntry to
"<div style='border-left: 3px solid #bb66ff; padding-left: 10px; margin-bottom:10px;'>" +
"<strong style='color:#bb66ff'>Faculty Oversight:</strong> The university has placed " +
_group[0].name + " and " + _group[1].name +
" under faculty supervision. Professor Caldwell will be overseeing their joint sessions personally.</div>"
>>
<<else>>
<<set _newEntry to
"<div style='border-left: 3px solid #00ffcc; padding-left: 10px; margin-bottom:10px;'>" +
"<strong style='color:#00ffcc'>Group Assignment:</strong> The university has arranged a joint session between " +
_group[0].name + ", " + _group[1].name + " and " + $vices[_mID].name +
".</div>"
>>
<</if>>
<</if>>
/* EVENT 12: MASS RESONANCE
An active master with 2+ NPCs triggers MinorEvent_Scene. */
<<elseif _eID is 12>>
<<set _eligibleCount to $roster.filter(c => c.stages[_mID] >= 1
and !["nathan", "josh", "jasper", "caldwell"].some(id => id !== _mID and c.stages[id] gte 3)).length>>
<<if _eligibleCount gte 2>>
<<set $groupEventMaster to _mID>>
<<set _newEntry to
"<div style='border: 1px solid #ff00ff; padding: 10px; background: #1a001a; margin-bottom:10px;'>" +
"<strong style='color:#ff00ff'>Mass Resonance:</strong> " + $vices[_mID].name +
" is converging his subjects for a collective session.</div>"
>>
<</if>>
<</if>><h1 style="text-align:center; color: #ffcc00;">FINALE - PART 6: THE QUIET SCHOLARS</h1>
<<speech "Maxwell" "Director Kane">>
"We observed the quiet ones closely. Those who hide behind books, laws, and study guides. They thought their intellect was a shield; they were wrong. It was merely a different frequency to tune."
<</speech>>
<<set _group to ["caprice", "melody", "lulu", "lana"]>>
<<for _i to 0; _i lt _group.length; _i++>>
<<set _id to _group[_i]>>
<<set _c to $roster.find(function(i) { return i.id === _id })>>
<<set _owner to _c.owner>>
<div style="border: 2px solid #444; padding: 20px; margin-bottom: 50px; background: #050505; border-radius: 15px;">
<h2 style="color: #ff66cc; text-align: center; text-transform: uppercase;"><<print _c.name>></h2>
<p style="text-align: center;"><strong>Claimed by: <<print $vices[_owner].name>></strong></p>
<<speech "Maxwell" "Director Kane">>
<<print $kaneComments[_c.id][_owner] || "A subtle but necessary recalibration of the mind. Data received." >>
<</speech>>
<<videoWall _c.name 3 _owner>>
</div>
<</for>>
<hr>
<div style="text-align: center;">
[[Next: The Public Outliers|Finale_Group7]]
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The wellness program was Aria's whole world. It wasn't just a job; it was a calling. Helping students, organizing sessions with Alina, being the calm, kind face everyone could come to—she was proud of it. Proud of herself. She felt like she was making a real difference, a small, bright spot of good in the stressful chaos of university life. So when the memo came that Dr. Marcus Caldwell, the formidable head of campus standards and security, wanted to "audit the program's outreach and efficacy," she volunteered without a second thought. He was a professor, an authority figure, a respected leader on campus. Of course she'd help him. It was her duty.
<img src="img/Aria/Normal.jpg">
His office was a place of intimidating grandeur, a high-rise room with floor-to-ceiling windows that looked out over the glittering city lights, a view that was meant to inspire awe, not comfort. Instead of a standard sofa, there was a deep, blood-red tufted couch that looked more like a piece of artwork than furniture. And behind the vast, sterile desk sat a man who looked at her the way you'd look at a stubborn, irritating stain on an otherwise clean floor.
<<speech "Caldwell">> "The campus saint. Everyone's little helper." <</speech>> He didn't stand, didn't offer a seat, didn't smile. He just looked at her, his eyes cold and bored, as if her presence was a tedious interruption to his far more important thoughts. <<speech "Caldwell">> "Sit down, girl. I don't have all night." <</speech>>
The casual dismissal stung more than she expected. She was used to being welcomed, appreciated, her efforts met with smiles and gratitude. She sat on the edge of one of the stiff chairs in front of his desk, folding her hands in her lap, trying to keep her composure under his flat, unnerving gaze.
<<speech "Aria">> "I'm happy to help with the audit, Dr. Caldwell. The program's important to me, and I believe in the work we do." <</speech>> Her voice was polite, professional, but it wavered just slightly.
<<speech "Caldwell">> "I'm sure it is," <</speech>> he said, his tone dripping with a condescension that made her feel small. He made a note on a pad without looking at her, his attention already elsewhere. <<speech "Caldwell">> "You know what I see when I look at you, Miss Aria? I see a girl who's built her entire identity on being needed. On being the sweet one everyone runs to. It's a performance. A costume. And costumes—" <</speech>> He finally looked up, and his eyes were flat, cruel, like chips of ice. <<speech "Caldwell">> "—come off." <</speech>>
She blinked, completely thrown by the non-sequitur. <<speech "Aria">> "I don't... I don't understand what you mean." <</speech>>
<<speech "Caldwell">> "You will," <</speech>> he said, a faint, cruel smile touching his lips for the first time.
The projector behind her hummed to life, casting a wash of soft, swirling colors on the wall. A low, rhythmic thrumming sound filled the room, barely audible, but it seemed to sink into her bones, into her teeth. He gestured vaguely toward the red couch. <<speech "Caldwell">> "The audit requires a demonstration of composure under duress. A stress test, if you will. Lie down." <</speech>>
She hesitated for a fraction of a second, her mind screaming at her that this was wrong, that this was not part of any audit. But that hesitation was her last moment of true control. The hum sank into her bones, and her thoughts went slow and soft, like cotton wool. The sweet girl who trusted adults, who'd never learned to say no, who always wanted to please—she folded like paper in a storm. Her pride, her composure, her very sense of self dissolved like sugar in water, leaving nothing behind but a pliant, obedient emptiness.
<<speech "Caldwell">> "The campus saint, reduced to a warm mouth and a pliant body. How fitting." <</speech>> He stood, unzipping his trousers with a practiced, unhurried motion, and she straddled him without being told, her body moving on its own. Her arms wrapped around his neck, her plaid skirt hiked up around her hips as she ground against him, the white shirt and skirt—the uniform of a good girl—now worn for him alone.
<video src="img/Aria/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The girlfriend of some literature student. Look at you—riding a professor's lap like the whore you always were under all that manufactured sweetness," <</speech>> his voice was silk, each word a precise, cutting little blade. <<speech "Caldwell">> "Your boyfriend isn't here, Miss Aria. He can't help you. And you'll forget he exists soon enough." <</speech>>
He laid her back on the red couch, the velvet cool against her skin, and spread her legs, kneeling between them. He was older, muscular, sure of himself in a way that boys like Nathan could never be. He buried his face between her thighs, and her body, no longer her own, arched in response.
<video src="img/Aria/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She tilted her head back, her mouth open, her eyes half-closed, the glittering city lights a blur behind her. She moaned, and hated herself, and couldn't stop. When it was over, he wiped his mouth with a handkerchief and made a note on his pad, clinical and satisfied.
<<speech "Caldwell">> "You'll do. The audit continues—privately, with you. You'll come when I call." <</speech>> His smile was thin, cruel. <<speech "Caldwell">> "And you'll remember nothing you shouldn't." <</speech>>
<<elseif _s is 2>>
She didn't remember deciding to come. There was no decision, only a compulsion. She only knew that her feet carried her across campus to the high-rise office, that her phone had buzzed with a simple, anonymous summons and her body had obeyed without question. She was at home, in her small, cozy dorm room, when the call came. She was still in her jeans, undone at the waist, the band of her dusty-pink lace panties showing, and she'd walked out anyway, half-dressed, unable to stop herself, the thrumming of the projector already a low hum in her blood.
<img src="img/Aria/Corr1.jpg">
He was waiting, seated on the black couch like it was a throne, and he didn't look up as she came in, as if her arrival was as predictable and unremarkable as the sunrise.
<<speech "Caldwell">> "You came straight from home, still half-undone. The conditioning is holding nicely," <</speech>> he noted, his voice flat, as if he were reading a lab report. He finally looked at her, and the contempt in his eyes made her stomach drop. <<speech "Caldwell">> "Get on the floor." <</speech>>
She knelt, the plush carpet a soft cushion for her knees. He stood, and she took him into her mouth—obedient, practiced, hollow—while he gripped the back of her head, not guiding, but owning, his possession absolute.
<video src="img/Aria/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The girl who helped everyone. On her knees for a man who's using her, and she can't even muster the will to be ashamed. How disappointing," <</speech>> his voice was cold, satisfied, a stark contrast to the intimacy of the act. <<speech "Caldwell">> "You think you're better than the other girls? Smarter, more resilient? You're not. You're just easier to break because you were so proud of being good. Your pride was the crack I needed." <</speech>>
He pulled her to a soft, pink flamingo blanket he'd tossed on the floor and had her kneel, her back straight. She opened her mouth, her tongue out, her eyes locked upward on his face, a perfect picture of submission. He came across her face, thick strands on her forehead, her nose, her lips, her chin, and she knelt there, accepting it, one hand resting at her throat, a gesture of quiet obedience.
<video src="img/Aria/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When he was done, he crouched down, wiping a strand of cum from her cheek with his thumb. The gesture was almost tender, which made it a thousand times worse.
<<speech "Caldwell">> "Go home to your boyfriend. Smile for him. Let him think he still has you," <</speech>> his voice was soft, cruel, a poison whispered in her ear. <<speech "Caldwell">> "And know that when I call, you'll come crawling. No matter where you are, no matter what you're doing. Your body is no longer your own. It answers to me." <</speech>>
<<elseif _s is 3>>
She came when he called, every time, no matter the hour. The fog was no longer a fog—it was her, and she was it. Publicly, she was still Aria: the wellness girl, Nathan's girlfriend, everyone's favorite. She went to classes, she smiled at friends, she held Nathan's hand, and she performed the role of the girl she used to be with a chilling, hollow perfection. Privately, she was Caldwell's—a perfect, hollow vessel, waiting for his voice, his summons, his command.
<img src="img/Aria/Corr3.jpg">
He had her on the black couch again, the city lights glowing behind the vast windows like a million indifferent eyes. He took her in the legs-up missionary position—deep, relentless, his thrusts a steady, punishing rhythm. One hand clamped over her mouth to smother her cries, the other gripping her thigh, holding her open for him. She clawed at the red velvet of the couch, her eyes half-lidded, her muffled moans the only sound in the room, the sound of an animal in a trap.
<video src="img/Aria/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Shh. Your boyfriend can't hear you here. No one can," <</speech>> his voice was low, satisfied, a rumble against her ear. <<speech "Caldwell">> "You're not a person to me anymore, Miss Aria. You're an object. An animal. My animal. And animals don't get to be proud. They don't get to have thoughts. They only get to obey." <</speech>>
He pulled out, and she lay there, limp and pliant. He knelt between her spread thighs, holding a small, delicate glass vial beneath her. Her body, trained and willing, let the clear fluid drip from her into it. He collected more with his fingers, then lifted the glass to her lips.
<video src="img/Aria/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She took the glass and drank, tilting her head back, swallowing every drop while she looked at him—the city behind her, the empty glass in her hand, the last of her will gone.
<<speech "Caldwell">> "What would your boyfriend think, once you return to him, with an old man's cum inside your cunt? You'll convince him it's his child, won't you, slut?" <</speech>>
<<speech "Aria">> "Yes, Master," <</speech>> the words came easily now, a conditioned response, as natural as breathing.
<<speech "Caldwell">> "You'll keep your life, Miss Aria. Keep the program, keep your friends, keep your boyfriend," <</speech>> he smiled, cold and pleased, the look of a scientist admiring a successful experiment. <<speech "Caldwell">> "You'll be my eyes in the wellness office. You'll tell me which girls are proud—which ones think they're above this, which ones think they're special—and you'll bring them to me. The proud ones are always the sweetest to break." <</speech>>
She nodded, hollow and willing. And she went home to Nathan that night, and smiled, and kissed him, and lied with every touch—while her Master's voice hummed in her blood, and the campus never knew its sweetest girl was already his.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Lana/Normal.jpg">
The text came at ten-thirty: *Door's unlocked. I'm already in pajamas, so don't judge.* Nathan almost laughed. Lana had been texting him like this for months — short, dry, matter-of-fact — ever since they'd ended up sitting next to each other at Josh's disastrous birthday dinner and spent the whole night trading quiet jokes about the family instead of talking to anyone else.
He let himself in. She was on the couch, legs tucked under her, a mug in her hands, wearing an old hoodie and fuzzy socks — a different person from the sharp, put-together one who showed up at family functions. She looked tired. She'd told him on the phone that the dinner had been rough.
<<speech "Nathan">> "Pajamas, huh. That's a strong look." <</speech>>
<<speech "Lana">> "I'm having a night," <</speech>> she said, not looking up. <<speech "Lana">> "My father cornered me after dessert. Asked why I can't be 'more like my sister' — who's engaged, apparently. Then he asked me about my 'plan' for the next five years, like I'm a business proposal." <</speech>>
<<speech "Nathan">> "What'd you say?" <</speech>>
<<speech "Lana">> "I told him my plan was to not have this conversation again." <</speech>> She finally looked at him, and there was a tired, real smile on her face. <<speech "Lana">> "He didn't take it well." <</speech>>
Nathan sat down on the other end of the couch, grabbed a chip from the open bag, and didn't offer advice. He'd learned that about her early — when Lana was upset, she didn't want solutions, she wanted someone to sit with her while she worked through it out loud. She was the same way in the constitutional-law group project they'd ended up in together last semester: she'd talked in circles for twenty minutes about the best way to approach it, and he'd just nodded, and she'd come around on her own, and afterward she'd said, almost grudgingly, "you're not a bad listener, for a guy who never says anything." He'd taken it as a compliment. He didn't say "you should stand up for yourself" or "your father's wrong" — she'd heard all of that a hundred times. He just sat with her, and after a moment said: <<speech "Nathan">> "The engagement thing — is it someone she actually likes, or is it a 'good match'?" <</speech>>
<<speech "Lana">> "I don't know. I barely talk to her anymore." <</speech>> She was quiet, then: <<speech "Lana">> "We used to be close. Before she became the good daughter and I became the difficult one." <</speech>>
That was the thing about Lana. Underneath the sharp edges and the family armor, she was just someone who missed her sister, and who was tired of being the one who didn't fit. She didn't say it dramatically. She just said it, and then changed the subject to something funny, because that was easier.
For the record, she had a plan: the LSAT behind her, law-school interviews in November, a moot-court trophy her father had never once asked about. None of it counted at that table.
They talked for an hour — about nothing, mostly. He told her about the disaster of his own family dinner, and she laughed so hard she snorted, and then pretended she hadn't. And somewhere in there, the warmth moved through him — the quiet, easy warmth that came when he genuinely liked someone — and it spilled across the couch toward her.
She looked up at him, mid-laugh, and something in her face went soft.
<<speech "Lana">> "You know it's weird," <</speech>> she said, quieter, <<speech "Lana">> "everyone in my life either wants me to be different or wants something from me. You're the only one who just — sits on my couch and eats my chips and makes me laugh." <</speech>>
<<speech "Nathan">> "That's because you're funny when you're not trying to win an argument." <</speech>>
She laughed again, and the warmth curled around her, and she didn't understand it — only that she didn't want him to leave.
Later, when the night had gone quiet and the chips were gone, she stood in front of him in the sheer white shirt, unbuttoned over the delicate lace bra, her hair loose. She wasn't dressed up for him — she was dressed down, comfortable, the way she'd been all night. That was what undid him, more than anything: she'd let him see her with her guard down, in old socks and a borrowed mood, and she was still looking at him like she didn't want him to leave. She wasn't performing. She wasn't being anyone but herself. She hooked her thumbs into her shorts and peeled them down, and sat back onto him on the bed, looking back at him over her shoulder, quiet and warm.
<video src="img/Lana/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He turned her, and she stood in the black floral lace, and he slid his hand under the fabric, slow, and she leaned into him, eyes half-closed, not performing, not arguing, just letting herself be touched.
<video src="img/Lana/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, and he felt her relax — really relax, the way she never did in front of anyone.
<<speech "Lana">> "I don't do this," <</speech>> she said quietly. <<speech "Lana">> "I don't let people in. But with you it's — easy. I don't have to be on." <</speech>>
He didn't answer with a speech. He just pulled her closer. And she stayed.
<<elseif _s is 2>>
She found herself texting him more. It wasn't about family, or about anything — she'd send him a photo of a stupid sign she saw, or a complaint about her neighbor's music, or a page of her moot-court brief with "kill me" in the margin, or just "you awake?" And he'd answer, and they'd end up talking until midnight. She told herself it was nothing. She was good at telling herself things.
He came over one night without being asked — showed up at her door with takeout, because she'd mentioned she was having a long week — moot-court exhibition season, coffee and spite — and he'd remembered. She opened the door in her white button-up, half-untucked, hair loose, and the warmth flooded through her at the sight of him.
<img src="img/Lana/Corr1.jpg">
<<speech "Lana">> "You brought food." <</speech>>
<<speech "Nathan">> "You said you were having a rough time. Figured I'd show up." <</speech>> He held up the bag. <<speech "Nathan">> "Also I wanted to see you." <</speech>>
She didn't know what to do with that. People didn't just want to see her. They wanted things from her, or they wanted her to be someone else. He just — wanted to see her.
<<speech "Lana">> "I don't know what to do with you, Nathan." <</speech>> She said it lightly, but her voice was smaller than she meant. <<speech "Lana">> "Everyone in my life has an angle. You don't. It's throwing me off." <</speech>>
<<speech "Nathan">> "There's no angle," <</speech>> he said, setting the bag down. <<speech "Nathan">> "I just like you. That's the whole thing." <</speech>>
The warmth curled around her, and she couldn't breathe for a second.
She knelt on the kitchen floor in the bright pink strappy top, and she took him into her mouth, looking up at him, and he held her hair back and watched her — not commanding, just there — and she let herself, for once, not be in charge of everything.
<video src="img/Lana/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up, and she knelt on the white rug, and he came across her tongue and lips, and she looked up at him, and laughed, soft and surprised at herself.
<video src="img/Lana/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lana">> "I've never had someone just show up for me," <</speech>> she whispered. <<speech "Lana">> "I don't know how to be on the other side of it." <</speech>>
He pulled her to her feet and held her. <<speech "Nathan">> "You don't have to know," <</speech>> he said. <<speech "Nathan">> "You just have to let it happen." <</speech>>
She fell asleep in his arms that night, and she didn't know if she was brave or just tired — only that she couldn't leave, and that for the first time in her life, she wanted to be the one someone showed up for.
<<elseif _s is 3>>
She was at her apartment, mid-week, when she realized she'd been lying to herself. She'd told herself it was casual, told herself she didn't do feelings, told herself she'd be fine. But she'd started checking her phone more, and smiling at his name, and planning her nights around whether he'd text. And she'd realized, sitting there, that she'd never wanted someone this much — and it scared her, and it was also the most real thing she'd felt in years.
She texted him: *Come over. And don't bring takeout. I just want you.*
He came. He stood in her doorway, and she crossed the room and took his face in her hands, and the words came out before she could stop them.
<img src="img/Lana/Corr2.jpg">
<<speech "Lana">> "I love you, Nathan ❤️." <</speech>> She said it like she'd been holding it in her whole life, which she had, without knowing it. <<speech "Lana">> "I don't know how to be soft, Nathan. I don't know how to not have a wall up. But with you — I don't want the wall. I just want you." <</speech>>
He kissed her like he'd been waiting his whole life for those words, and they went back to the bedroom, and she straddled him on the black leather ottoman, her hair loose, her skin warm — and she rode him, slow at first, then faster, looking at him, laughing at how good it felt, not performing, not in charge, just there with him.
<video src="img/Lana/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her back on the white patterned sheets, and he came across her stomach and the underside of her breasts, and she laughed, surprised, and pulled him down to her, and held him.
<video src="img/Lana/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, tracing patterns on his chest. <<speech "Lana">> "I'm still a lot," <</speech>> she murmured. <<speech "Lana">> "I'm still difficult and sharp and I don't take things well." <</speech>>
He kissed the top of her head. <<speech "Nathan">> "I know," <</speech>> he said. <<speech "Nathan">> "I like you anyway." <</speech>>
She smiled at that — the real smile, the one she kept for no one. She'd spent her whole life being the one everyone had to handle, the one who didn't fit. And here was someone who didn't want her to be different — who just liked her, sharp edges and all. For the first time in her life, she let herself be the one who was wanted, exactly as she was.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
Nathan had been seeing Jasper around campus for weeks before he ever walked into the book club. That was the truth of it. The quiet guy from Havenwood — the one who moved through the library like he was trying not to take up space, who sat alone in the café with a book he never opened. Nathan recognized the shape of it. He knew what it looked like when someone was waiting for another person to come find them, because he'd watched his best friend go quiet and bitter the same way, two years ago, and by the time anyone reached for him it was too late. Nathan had sworn, after that, that he wouldn't stand by while someone else went quiet alone.
So he'd asked around. Learned Jasper's one place — the book club — and learned the name of the girl who ran it.
Melody.
The room was small and warm and smelled like old paper. She was folding chairs at the end of the meeting when he came in, blonde bangs falling around a face that went from surprised to welcoming in a single breath, a pink ruffled crop top a soft spot of color in the dim light.
<img src="img/Melody/Normal.jpg">
<<speech "Melody">> "You're — the meeting's over. We're closed." <</speech>> She said it kindly, like she hated turning anyone away.
<<speech "Nathan">> "I know. I'm not here for the meeting." <</speech>> He looked past her to the corner, where a tall, quiet figure was putting on a jacket, already halfway to the door. <<speech "Nathan">> "I'm here for him." <</speech>>
Melody followed his gaze, and something careful crossed her face. <<speech "Melody">> "Jasper? Do you know him?" <</speech>>
<<speech "Nathan">> "Not much. I keep seeing him around campus. He looks like someone who could use a friend." <</speech>> He turned back to her, open and honest. <<speech "Nathan">> "You're the one who knows him. I figured you'd be the person to ask." <</speech>>
She looked at him for a long moment, and then — he watched it happen — her shoulders came down an inch, like she'd decided he was safe. He felt the warmth slip out of him before he could stop it, the way it always did when he meant something. It wasn't something he controlled. It was just — him, leaking. And Melody, who'd spent her whole life wary of strangers, smiled at him like she'd known him for years.
<<speech "Melody">> "He doesn't talk much," <</speech>> she said. <<speech "Melody">> "But he's the kindest person I know. He remembers everyone's names. He stays late to help me fold the chairs." <</speech>> She laughed, soft. <<speech "Melody">> "I'm glad you want to know him. Most people walk right past him." <</speech>>
<<speech "Nathan">> "Most people walk past a lot of things." <</speech>> He smiled. <<speech "Nathan">> "I'm Nathan. Literature, third year. I read, I promise. I can prove it if you give me a book." <</speech>>
She laughed again, easier this time, and he helped her finish the chairs. He came back to the next meeting — and the one after that. He was a lit major, and the club was genuinely his scene, and Jasper was in the corner every time, and Nathan made a point of saying hello, of sitting near him, of asking him what he was reading. It took three meetings for Jasper to say more than a sentence back. Nathan counted it as a win.
And Melody — Melody kept lighting up when he walked in. She started saving him a chair. She told him about the club, about the shy freshman who'd finally spoken up, about the book she was rereading, the one about the queen who protects her kingdom. And the warmth kept leaking out of him, gentle and constant, and she kept relaxing into it, and he told himself it was just the friendship. He told himself a lot of things.
He walked her out now, every meeting. She locked up last — she always did — and he'd started staying to help, and then to walk her across the quiet campus, and then to stand at her door a little longer than he needed to. <<speech "Melody">> "You don't have to keep walking me home," <</speech>> she said one night. <<speech "Nathan">> "I know," <</speech>> he said. <<speech "Nathan">> "I like the walk." <</speech>>
And then, one afternoon, he met her at the arts hall the way she'd asked — and instead of turning toward the doors, he took her hand and led her around the side, into a bright hallway where the floor was scattered with rose petals and a red heart-shaped balloon floated against the wall, a little table with white orchids and a heart-shaped box waiting.
She stopped. <<speech "Melody">> "What — what is this?" <</speech>>
<<speech "Nathan">> "Thank you," <</speech>> he said, and his voice was soft. <<speech "Nathan">> "For telling me about Jasper. I've started looking forward to these meeting. Thanks to you. I really — " <</speech>> He took a breath. <<speech "Nathan">> "I enjoy spending time with you. You are a wonderful person." <</speech>>
No one had ever done anything like this for her. She was the one who arranged things for other people, who made rooms feel special, who was always giving and never receiving. And here was this boy who'd come for a stranger in the corner and stayed for her. She kissed him before she knew she was going to — slow and deep, one hand coming up to his face — and he pressed her back against the wall and kissed her until her knees went soft, his hands finding her through the red dress, pulling the neckline down, kissing the skin he'd bared, and she gasped into the bright, empty hallway, her fingers in his hair.
<video src="img/Melody/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He walked her home at midnight, hand in hand. She lay awake long after, on the orange-and-white bedspread, running her fingers over her own skin where his hands had been, thinking about his voice, the rose petals, the way he'd looked at her like she was the only person in the world — and she touched herself slowly in the dark until she came quietly against her own fingers, his name on her lips.
<video src="img/Melody/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay in the dark, heart still pounding, and whispered into the quiet: <<speech "Melody">> "What are you doing to me, Nathan?" <</speech>>
She didn't know. Neither did he. But the warmth was already woven through her — and under it, if he'd been honest with himself, a flicker of something he couldn't name had started to worry him.
<<elseif _s is 2>>
She started hiding from him after that night. Not because she didn't want to see him — because she wanted to see him so much it scared her, and she'd started to feel like she couldn't trust her own head around him, and she didn't understand it, and the not-understanding was the worst part. She stayed late after the meeting, shelving returns, telling herself she just had work to do.
He came to her anyway. That was the thing about Nathan — he came to her. He found her in the club room long after the others had gone, alone among the shelves, and she looked up and the warmth hit her all over again and she almost dropped the book in her hands.
<img src="img/Melody/Corr1.jpg">
<<speech "Nathan">> "You've been hiding from me," <</speech>> he said. It wasn't an accusation. It was just — worried, and true.
<<speech "Melody">> "I'm not — " <</speech>> She set the book down, hands shaking. <<speech "Melody">> "I don't understand what's happening to me, Nathan. I've never felt anything like this. It's like I can't think when you're near. It's like you're the only person in the room, and I've only known you — I don't even know you." <</speech>> Her voice cracked. <<speech "Melody">> "And I can't tell if it's real. And I'm terrified that it isn't." <</speech>>
Nathan went very still. He'd felt it slipping — the recent, uncontrolled thing inside him, the one he was still learning to hold — and he couldn't let her fall for a lie, not even an accidental one. Not after he'd watched what lies and silence did to people.
<<speech "Nathan">> "There's something I have to tell you," <</speech>> he said, and his voice came out rough. <<speech "Nathan">> "I came to the club to meet Jasper. That was true — all of it. But there's a thing I can do. It's new. I don't — I can't control it." <</speech>> He took a breath. <<speech "Nathan">> "It makes people feel warm toward me. Safe. Like they want to be near me. And I think — I think it's been happening with you. Since the first night. I never meant for it. I didn't come here to do that to you." <</speech>>
The room went very quiet. She stared at him, and he watched the hurt move through her like a wave.
<<speech "Melody">> "So none of this is real," <</speech>> she said, and her voice was small. <<speech "Melody">> "The way I feel. The rose petals. All of it." <</speech>>
<<speech "Nathan">> "The rose petals were real. Jasper is real — I've been reaching him, and it's the best thing I've done in years, and it's because of you." <</speech>> He stepped closer, and his voice shook. <<speech "Nathan">> "And how I feel about you — I don't know where it started, Melody. I don't know if it started before the warmth or because of it. But I know I'd rather lose you honestly than keep you by accident." <</speech>>
She stood there a long time, among the shelves, the dust motes turning in the light. And then she crossed the room to him, and took his hand.
<<speech "Melody">> "I don't know what to do with that," <</speech>> she whispered. <<speech "Melody">> "I don't know if what I feel is mine. But I know that you told me. When you could have just let it happen, you told me." <</speech>> She pulled his hand to her chest, held it there. <<speech "Melody">> "That's not nothing, Nathan. That's — that's everything." <</speech>>
He kissed her like she'd given him something he'd been afraid to ask for, and they ended up at his place, the dim room by his bed, and she knelt in the white top she'd worn, the light slipping down to bare her, and took him into her mouth — slow and reverent, looking up at him the whole time — and he watched her with that steady, tender intensity, one hand resting on her head, not pushing, just holding.
<video src="img/Melody/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When he was close, he pulled her up and led her to the bright living room — gray sofas, orange pillows, big windows — and she knelt naked on the floor, head tilted back, mouth open and tongue out, and he stood over her and let go, thick and warm across her tongue, her lips, her cheeks, and she held his gaze, taking it, swallowing, not flinching.
<video src="img/Melody/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Melody">> "I don't know what this makes me," <</speech>> she whispered afterward, still kneeling. <<speech "Melody">> "I don't know if what I feel is mine. But I know I don't want to lose you. That part — that part's mine." <</speech>>
Nathan pulled her to her feet and held her, his hand in her hair. <<speech "Nathan">> "Jasper and I got coffee the other day," <</speech>> he said quietly. <<speech "Nathan">> "He told me about the book he wants to write. He's going to be okay, Melody. He's going to have people." <</speech>>
She cried a little, then. She didn't know why. She fell asleep in his arms that night, the warmth humming under her skin, and she didn't know yet if she was brave or just too far gone — only that she couldn't leave him, and that he'd reached Jasper, and that the boy who'd come looking for a stranger in the corner had somehow become the center of her world.
<<elseif _s is 3>>
She'd kept a wall up since the confession. That was the honest part of it — she'd gone to her club, smiled at her kids, watched Jasper come out of his shell a little more every week, and she'd kept one hand braced against what she felt, telling herself she needed to know if it was real before she let herself fall.
Nathan hadn't pushed. That was the thing that undid her, in the end. He'd just kept coming to the club, kept walking her out, kept being exactly who he'd always been — patient, honest, there. And one evening, after the meeting, when he found her waiting by the door the way she always was now, she told him the truth.
<img src="img/Melody/Corr2.jpg">
<<speech "Melody">> "I've been trying to decide if I can trust what I feel," <</speech>> she said. <<speech "Melody">> "If it's even mine to trust." <</speech>>
<<speech "Nathan">> "I can't answer that for you," <</speech>> he said, and his voice was gentle. <<speech "Nathan">> "I can only tell you I'll wait as long as it takes." <</speech>>
That was it. That was the moment the wall came down.
<<speech "Melody">> "I love you." <</speech>> The words came out clear and certain, and they felt like the first truly true thing she'd ever said. <<speech "Melody">> "I love you, Nathan ❤️. I've decided it doesn't matter where it started. I love that you told me the truth. I love that you made me feel like the center of a room for the first time in my life." <</speech>> She took his face in her hands. <<speech "Melody">> "I want to be yours." <</speech>>
He kissed her like he'd been waiting his whole life for those words, and she laughed against his mouth, giddy and light — the shy girl who ran the book club, finally being wanted out loud. She changed into the white collared shirt he'd left for her, left it open, hiked up the plaid skirt, kept the knee socks and the platform heels, and he laid her back on the gray bedspread — and for once she didn't feel like the girl in the corner. She felt like the girl at the center of her own story.
<video src="img/Melody/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He knelt between her legs, lifting one knee, and pushed into her slow and deep, and she gasped, arching into him, her hands finding his shoulders, her eyes locked on his. It was gentle and perfect and hers, and she rode every stroke like it was the answer to a question she hadn't known she was asking.
<video src="img/Melody/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward he straddled her, stroking himself above her bare chest, and she watched the tip with bright, open eyes — and when he came across her breasts, warm and white against her skin, she smiled up at him, wide and real, and laughed, and pulled him down to her.
She still ran her book club. She still made the shy ones feel heard. But now, when the meeting ended, Nathan was leaning in the doorframe, and Jasper was standing by the table talking to the freshman girl, and Eva and Kylie had started coming to the group hangouts and calling her by her name, and Melody — who'd spent her whole life in the corner, making room for everyone else's stories — had found the family she didn't know she was looking for, and she'd brought Jasper into it too.
She knew the warmth had seeded it. She'd decided it didn't matter. Because everything after the seed — every choice, every night, every time she reached for his hand — was hers. And she chose him, every time.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Lulu/Normal.jpg">
Exam season had turned the library into a morgue with better lighting, and Lulu had been sitting across from Nathan for three hours, staring at the same paragraph of critical theory until the words stopped meaning anything. Her eyes burned. The book was open to a page she'd read twice. Her pen was doodling a small spiral in the margin that she was fairly sure wasn't going to be on the exam.
<<speech "Lulu">> "I'm sorry," <</speech>> she said, and she meant it, because she hated wasting his time. <<speech "Lulu">> "I think my brain actually left the building. I've read this sentence four times and I still couldn't tell you what it says." <</speech>>
<<speech "Nathan">> "Then stop reading it." <</speech>> He closed his book, gentle, and she watched him gather her papers with the patience of someone who'd known her long enough not to argue. <<speech "Nathan">> "Come on. Pack it in. My place is ten minutes, I've got proper tea, not this cafeteria stuff, and the light is better." <</speech>>
She should have said no. She had a study schedule, and she was already behind on it, and the guilt of the spiral doodle was sitting in her chest. But his place was warm in the way she remembered, and the walk there was easy, and he talked about nothing the whole way — the man who'd fed the geese by the pond, the squirrel that had stolen someone's sandwich (Kylie swears it happened!) — and by the time they got to his door she'd forgotten which paragraph she'd been stuck on.
His apartment smelled like tea and old paper. He put the kettle on, and she sat on the couch with her legs tucked under her, and the evening slid into the comfortable shape it always took with him: her talking about the reading, him asking the kind of question that made her slow down and actually think, her laughing at her own tangent. He was the only person she knew who could sit in silence with her without it being awkward. She liked that about him. She liked a lot about him, if she was honest, which she tried not to be too often, because he was her study partner, and she was shy, and he was kind, and it was all a little too much to hold.
The warmth hit her somewhere in the middle of a sentence.
It wasn't the tea. It was a presence in the air around him — soft, golden, alive — that she'd felt a hundred times and always dismissed as her own silly heart. Only this time it wasn't a flutter. It was a hand closing around her chest, warm and certain, and everything she'd been carrying all day — the exam, the spiral doodle, the quiet crush she'd been carefully not-thinking about — slid off her shoulders at once. She looked at him, and he was mid-laugh at something she'd said, and the light was in his eyes, and she knew, with a clarity that terrified her, that she wanted to be near him more than she wanted to pass any exam.
<<speech "Lulu">> "Nathan." <</speech>>
He looked at her, the laugh still warm on his face. <<speech "Nathan">> "Yeah?" <</speech>>
She didn't have a plan. She crossed the space between them and kissed him, and he went very still for one long heartbeat — then his hand came up to her jaw, soft, and he kissed her back like he'd been waiting for permission.
<<speech "Nathan">> "Lulu — " <</speech>> He pulled back just enough to breathe, his forehead against hers. <<speech "Nathan">> "We're study partners. You're — I don't want to mess this up." <</speech>>
<<speech "Lulu">> "I don't want you to stop." <</speech>>
He kissed her again, slower this time, and she let herself fall into it. He helped her out of the white cable-knit crop top, the plaid skirt, and his hands were careful, unhurried, like he had all the time in the world. On the bed, with the sheets cool and the light low, she lay back in nothing but the sheer white thigh-highs she'd worn under her skirt, and she could feel how much he wanted her, and it made her brave.
<video src="img/Lulu/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He worked her open with his fingers — slow, patient, watching her face — and she arched into his hand, her hair spread dark on the pillow, her mouth open on a sound she'd never let anyone hear. He found the rhythm that made her toes curl, and she came apart for him with his name in her throat, and he held her through it, kissing her shoulder, her neck, murmuring her name like a prayer.
<video src="img/Lulu/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Later she stood in the middle of his bright living room, hair pulled back in a high ponytail, completely bare, the small script tattoo on her collarbone catching the light, and she wrapped her hand around him, slow, watching him watch her. She wasn't shy anymore. With him, she wasn't anything she'd been afraid of being.
<<speech "Nathan">> "Lulu." <</speech>> His voice was rough. <<speech "Nathan">> "You're going to be the end of my studying career." <</speech>>
She laughed, and it was her real laugh, bright and startled, and she kissed him, and they made a mess of his couch, and afterward she lay against his chest with his hand in her hair, listening to his heartbeat, thinking: this is the safest I've ever been.
<<elseif _s is 2>>
<img src="img/Lulu/Corr1.jpg">
She'd told herself it was a lapse. That was the story she rehearsed in the mirror — a strange night, exam stress, a moment of weakness, and now it was over, and she was going to go back to being his study partner and forget the way he'd said her name.
It didn't work.
She kept finding reasons to walk past the library table where he sat. She kept remembering the weight of his hand on her jaw. She caught herself buying the tea he liked and putting it in her bag, and she didn't know what to do with the fact that she wanted to be near him the way other people wanted to sleep.
She found him on the steps of the humanities building at the end of the day, book open, not reading. He looked up when she sat down beside him, and the warmth was already there, waiting for her, settling around her shoulders like a blanket.
<<speech "Nathan">> "You found me." <</speech>>
<<speech "Lulu">> "I was looking." <</speech>> She said it before she could stop herself, and her face went hot, but she didn't take it back.
He took her to his place again — she'd put on the maroon skirt and the cream top with the keyholes before she came, and the thigh-highs under the garter, and she couldn't have said exactly why, only that she wanted him to see her, wanted him to know what she'd done for him. He noticed. His eyes went dark when he took her in, and he pulled her inside and kissed her until her knees were weak, and she ended up on her knees on the beige sectional, the orange crop top pulled down under her breasts, her white denim shorts still on, taking him into her mouth like it was the only thing she'd ever been good at.
<video src="img/Lulu/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He was gentle with her, even like this — his hand in her hair, soft, guiding, not pushing — and she worked him slowly, learning him, the way she learned everything: carefully, thoroughly, wanting to get it right. When he pulled her up and knelt in front of her, sliding the head of his cock against her lips, teasing her open, she looked up at him with her mouth slack and wet, gold hoops swinging, and she let him slide in and out of her mouth, slow, until saliva ran down her chin and she was drunk on the taste of him.
<video src="img/Lulu/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lulu">> "I don't know what this is," <</speech>> she whispered, her voice wrecked, when he finally pulled her into his lap. <<speech "Lulu">> "I don't know what you've done to me. I can't stop thinking about you. I missed you before I even left." <</speech>>
<<speech "Nathan">> "You don't have to know." <</speech>> He kissed her forehead, her nose, her mouth. <<speech "Nathan">> "Just be here. That's all I want." <</speech>>
She curled into him, and the warmth closed around her like a held breath, and she thought: this is the most honest I've ever been, and the most terrified, and I don't want it to stop.
<<elseif _s is 3>>
<img src="img/Lulu/Corr3.jpg">
She'd drawn a line, and she'd drawn it badly, and she knew it.
The line was: she had a life. She had a degree to finish, a book club with Melody, friends who'd started asking where she kept disappearing to. She couldn't keep spending every spare hour at Nathan's place, couldn't keep wearing the clothes she'd started buying for him, couldn't keep feeling the warmth every time she so much as thought his name.
She stood in his doorway that evening in the maroon skirt and the purple lace garter she'd put on without quite deciding to, and she said it the way she'd practiced it all the way over.
<<speech "Lulu">> "This has to end, Nathan. I'm serious. I can't — I have to graduate, I have to be a person, I can't keep — " <</speech>>
He didn't argue. He just crossed the room and took her face in his hands, and the warmth was there — stronger than it had ever been, pouring off him like light off a window — and she felt it wrap around her spine, settle her, still her.
<<speech "Nathan">> "You can be a person," <</speech>> he said quietly. <<speech "Nathan">> "I'm not taking anything from you, Lulu. I just want you. That's all. I just want you here." <</speech>>
And the line she'd drawn — the last one — went somewhere she couldn't see it anymore.
He turned her over the arm of the white sectional, and she let him, pressing her hands into the cushions, bare from the waist down, and when he slid into her from behind, slow and deep, she cried out into the fabric, and it wasn't a cry of pain. He held her hips and drove into her with a steady, patient rhythm, and she rocked back to meet him, head turned, mouth open, the script tattoo shifting on her shoulder, and she was his — she knew it the way she knew her own name.
<video src="img/Lulu/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lulu">> "I love you," <</speech>> she heard herself say, the words torn out of her, and they were the truest thing she'd ever said. <<speech "Lulu">> "I love you, Nathan. I don't know how it happened. I don't care." <</speech>>
The warmth roared around them, and he said it back, rough and real, and she believed him with the same blind trust she'd once put in her own careful plans.
Afterward, she sat naked on the white sofa, leaning back on her hands, and he stood over her and came across her tongue, her lips, her chin, spilling down between her breasts, and she kept her mouth open, taking every drop, eyes half-closed and full of him.
<video src="img/Lulu/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She kept her life. That was the strange, quiet part of it — she still studied, still went to book club, still waved at Melody and laughed at Kailey's jokes. Nobody saw anything. Nobody saw the way she'd started building her whole schedule around the hours she could be at his place, or the way she listened differently when one of her friends mentioned being lonely, or the way she'd begun to think, with a private, secret warmth, about which of them he might like too. She was still Lulu — diligent, thoughtful, a little shy. She was just someone else's now, and the campus never knew the difference.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Keisha/Normal.jpg">
The alumni gala was her baby, and it would either be the best night the campus had ever hosted or the most public disaster of her career. Keisha had stopped counting the moving parts somewhere around the seating chart — four hundred guests, the board, the donors, Kane's toast (he insisted on writing it himself), the caterers, the AV crew, the student volunteers — and had simply started making lists of lists. She was home in the orange keyhole top and her favorite jeans, hair coming loose, the label printer on the coffee table jamming for the seventh time, when her phone buzzed.
*I'm outside with food and an extra pair of hands. You said to call if I ever wanted to help.*
She remembered him the way she remembered everyone who'd ever sat in her office: precisely, with a file. Nathan. Literature junior. He'd landed on her desk the way the quiet ones always did — by accident. Campus security had rolled up on an after-hours party on the quad, some bonfire that had gotten out of hand, and the crowd had scattered and been rounded up, and among the usual suspects had been two people who had no business being there: Nathan and his best friend Eva. Neither of them was the type. She'd called them in expecting excuses and gotten the truth instead — someone they knew had invited them, they'd stayed too late, they were sorry. She didn't suspend them. She gave them a stretch of helping her instead, and they'd done it — every day, early, no complaints, filing and folding and running the errands nobody wanted. Eva had turned out to be sharp and funny, the kind who argued with you and made you like it; Nathan had turned out to be quiet and steady, the kind who finished what he started without being asked. At the end of it he'd said, very seriously, "You still have my number. If you ever need an extra pair of hands." She'd smiled at that and forgotten all about it.
She hadn't thought he'd mean it. She let him in anyway, and he came in smelling of cold air and Thai food, and he took one look at the label printer and the exploded gift bags and set the food down like a man walking into a war zone.
<<speech "Nathan">> "Okay. You've been fighting this thing all evening, haven't you?" <</speech>>
<<speech "Keisha">> "It jams on purpose. I'm convinced it has a personality and it hates me." <</speech>>
<<speech "Nathan">> "It doesn't hate you. It's just old and tired." <</speech>> He crouched and opened the printer's little door, and she watched him work the paper free with the kind of patience she hadn't mustered in an hour. <<speech "Nathan">> "Kinda like the rest of you." <</speech>>
It was a dumb joke and it worked. She laughed — bright and caught off guard, the printer forgotten — and something in her chest loosened a fraction. They ate the Thai food on the couch, going over the final run of the evening: the seating chart, the welcome remarks she'd rewritten four times, the gift bags she'd been stuffing between meetings. He was good at it, in the unflashy way she liked — he caught the donor whose name was spelled wrong on the escort card, he suggested moving the dean's table away from the speakers, he asked good questions and didn't try to impress her. He wasn't trying to impress her. That was the strangest part, and she'd remember it later: he wasn't trying to be anything at all.
The air around him was warm. Not the room — the air around him, specifically, like standing next to a stove that had been left on low. She'd noticed it the week he'd helped her, and again now, the way you notice a room getting warmer without being able to say when it happened. She kept catching herself leaning toward it.
They'd moved to the couch, the schedule between them, his shoulder almost touching hers, when it happened. Something settled over her — warm and soft and heavy in the good way, like a blanket someone had draped over her without asking. Keisha let out a breath she hadn't known she was holding, and the day — the lists, the printer, Kane's toast, all of it — slid off her like water. She was suddenly, dangerously comfortable. She could feel the exact shape of the warmth against her spine, humming, and she knew, somewhere behind the part of her that ran the institution, that this wasn't the wine and it wasn't the hour. It was him. It was around him. He didn't notice anything — he was turned away, showing her something on his phone, explaining about the AV crew — and the warmth wasn't his doing at all. It was just there, with him, the way light is with a window.
She went and changed while he finished the bags — it was warm in the apartment, and she was home, and she put on the white top and the low-rise denim shorts and white socks with black stripes, the way she dressed when she was alone and nobody was grading her. She came back barefoot, and he looked up, and something in his face did a small, private thing that made her stomach turn over.
She didn't plan what happened next. That was the thing she'd hold onto later, in the part of her brain already screaming: she didn't plan it. One minute they were talking about the welcome remarks, and the next she was standing in front of him, and her hands were at the hem of the white top, and she was pulling it down — under her breasts, the way she'd done a hundred times alone in front of the mirror — and his breath stopped.
<<speech "Keisha">> "You've been very good about the seating chart, Nathan," <</speech>> she heard herself say, and her voice came out warm and teasing and nothing like the Vice Director. <<speech "Keisha">> "I think you've earned a look." <</speech>>
He looked. She watched him look — at the bare weight of her, the full curve of it, the mandala along her ribs — and the warmth around him flared, and she felt it like a hand at the small of her back, and she didn't step away.
<video src="img/Keisha/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He was careful with her at first — hesitant, like he was waiting for her to remember who she was and stop this. She didn't. She pulled him down by the hair, onto the white tufted chaise, and opened her legs, and the quiet, good-natured boy who fixed printers turned out to have hands that learned fast. He went down on her like she was something precious, and she lay back with her hair spilling across the cushions and her hand pressed over her own mouth, the mandala rising and falling, the room gone warm and golden around them.
<video src="img/Keisha/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She came with a sound she'd never made in her life, and he held her through it, and afterward they lay tangled on the chaise, and she was mortified and glowing and not sorry.
<<speech "Keisha">> "If you breathe a word of this," <</speech>> she said, her voice still rough, <<speech "Keisha">> "I'll have you expelled. Then I'll deny everything. Then I'll have campus security reclassified as a secret police force and have you watched." <</speech>>
He laughed — delighted, like she was the funniest person he'd ever met — and the warmth settled around her shoulders again, and she knew, with the part of her that ran the institution, that this was not going to be a one-time thing.
<<elseif _s is 2>>
<img src="img/Keisha/Corr1.jpg">
The gala was a triumph. That was the thing everyone said, and it was true — she'd fielded three offers to "talk about the spring campaign," one marriage proposal from a dean who smelled of gin, and Isabella had run the donor list like a small army, and the seating chart she'd sweated over was declared flawless by exactly the donors who mattered. She wore the praise like armor, because something was wrong with her.
It was the warmth. She'd catch it humming behind her sternum in board meetings — a low, contented heat that had nothing to do with the radiator — and her attention would drift to her phone, to the last message he'd sent: a photo of the label printer with a smiley face drawn on it in tape. *Fixed him. He says he's sorry.* She'd laughed out loud in the middle of a budget review, and Alina had looked at her, and she'd waved it away, and the warmth had hummed all afternoon.
He showed up that evening with the plastic tub of her containers and the leftover gala food she'd let him take home — a transparent excuse that had felt real at the time. She was home in the white lace bra and the light-blue denim shorts, hair in a loose ponytail, the long evening's work already behind her, and the moment he stepped inside, the warmth was back. Worse. A tide coming in.
<<speech "Keisha">> "I'm twenty-eight years old, Nathan," <</speech>> she said, arms crossed, a last line of defense. <<speech "Keisha">> "I am the Vice Director of this university. You are a student here. This is insane." <</speech>>
He set the tub on the counter.
<<speech "Nathan">> "It is," <</speech>> he agreed. <<speech "Nathan">> "I've thought about it every day." <</speech>>
Neither of them moved. Then Keisha said, very quietly:
<<speech "Keisha">> "Good." <</speech>>
She crossed the room. The dark leather couch in the corner of her living room had been Kane's castoff, and she'd never liked it, and she had him there, kneeling between his knees, her hands around him, pressing her breasts together around the shaft. She kept her eyes on his the whole time, because she was still, in her own head, in charge of this.
<video src="img/Keisha/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Keisha">> "Careful," <</speech>> she said, low, sliding up, tongue against the head. <<speech "Keisha">> "I've read your file. I know exactly how this ends." <</speech>>
She didn't — that was the lie she was telling herself — but she said it like she did, and he let her, and the want in his face made her reckless. When she felt him getting close she pulled off, breathless, and he looked at her, and she looked at him, and neither of them had to say anything. She ended up on the light tile of the kitchen floor, black lace panties around her knees, and when he came across her chest and her neck and her face — thick and warm and absolutely everywhere — she did something she would never have predicted.
She laughed.
A full, helpless sound, delighted and wrecked — the Vice Director of Havenbrook University on her own kitchen floor with come on her chin, shaking with it until her stomach ached. He laughed with her, looking down at her like she was exactly where he wanted to be, and she pulled him down and kissed him with it still on her lips, and the armor she wore at work was just — gone.
<video src="img/Keisha/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Later, sprawled on the cool tile, she traced the mandala on her own ribs with a fingertip and said what she was afraid of.
<<speech "Keisha">> "I don't know what this is, Nathan. It feels like something's happening to me when you're around. Something I'm not doing on purpose." <</speech>>
He was quiet a moment.
<<speech "Nathan">> "Then let it happen." <</speech>>
It wasn't a promise, and it wasn't a rescue. It was just him — the boy who fixed printers and brought Thai food and said sorry for the printer. She let the warmth hold her, and for the first time in a long time, she didn't try to run the room.
<<elseif _s is 3>>
She had a system now, and it terrified her. The system was: work — she still ran the campus, chaired the meetings, signed the approvals, smiled at the board — and then, when the day was done, the warmth would pull and she would go. To him. She told herself it was a thing. A fling with a student, reckless and wrong and finite. She told herself that a lot — in the mornings, in the mirror, in the car on the way to his place, telling herself the whole way, knowing it wasn't true.
<img src="img/Keisha/Corr3.jpg">
He was at her apartment by the time she got home that evening — she'd texted him from the parking lot, one word, and he was already there, already warm, already making the coffee she'd want. She came in with her hair still up and her heels still on and stopped in the doorway.
<<speech "Keisha">> "This has to end," <</speech>> she said. She'd practiced it in the meeting, in the elevator, in the car. <<speech "Keisha">> "You're a student. I'm — " <</speech>>
He didn't argue. He just looked at her, and the warmth closed around her like a hand, and she heard her own voice, quiet:
<<speech "Keisha">> "I don't want it to." <</speech>>
He undressed her slowly, like he had all the time in the world, and she let him — the Vice Director, letting a boy take her blazer off, her skirt, the last of the day. On the cream tufted sofa, with her hair spread across the cushions and the navel piercing glinting in the low light, she stopped pretending.
<video src="img/Keisha/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Keisha">> "I love you," <</speech>> she said, and it came out small and true and terrifying. <<speech "Keisha">> "I love you, Nathan. I don't know how, and I don't know why, and I don't care — I love you." <</speech>>
The warmth roared around them like a held breath let go. He said it back — his voice rough, his hands in her hair — and she believed him, and that was the part that would undo her, later: that she believed him completely, with the same steady trust she'd once put in spreadsheets and sign-offs and herself.
He took her against the wall of the hallway afterward, her grey leg warmers still on, her hands braced on the white paint, and when he finished inside her and pulled out and the warmth of it ran down her thigh, she turned and dropped to her knees and cleaned him with her mouth — slowly, deliberately, her eyes on his, because it was the closest thing to a prayer she knew.
<video src="img/Keisha/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She kept the job. She was still the Vice Director — the gala was in the papers, the board adored her, the campus ran through her like a river through a lock — and nobody saw anything. Nobody saw the quiet boy who brought her coffee before her morning meetings, or the way her approval flow sped up whenever a project had his name anywhere near it, or the way she listened differently now when a girl came to her office with the same careful walls Keisha knew by heart. She was still the one they came to. She still listened. She just knew, now, the one who could do something about it — the warmth, the boy, the thing she'd found and never meant to find. The protector, they called her. She still was. She was just protecting something different now, and the campus would never know the difference.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The council had been planning the spring festival for weeks, and Adria was deep in the logistics — vendors, permits, the stage layout — when the quiet sociology student she'd roped into helping with the community outreach asked if she'd ever taken a break.
<<speech "Jasper">> "You've been at this for six hours." <</speech>> He set a cup of tea on the table beside her. <<speech "Jasper">> "Drink something. The festival will survive." <</speech>>
Adria looked up at him, surprised. She barely knew him — he was one of the quiet ones from Havenwood, the foster house, always polite, always calm. She'd roped him in because he was reliable, not because she'd thought about him.
<<speech "Adria">> "You don't know me well enough to mother me, Jasper." <</speech>>
<img src="img/Adria/Normal.jpg">
<<speech "Jasper">> "I know you run everything on this campus and I've never once seen you sit still." <</speech>> He smiled, easy. <<speech "Jasper">> "That's enough to know you could use a break." <</speech>>
She laughed — a real laugh, surprised out of her. And somewhere in the easy rhythm of the conversation, she noticed the scent. It was faint at first — old leather, chamomile, the clean smell of spring rain. It came from him, or from the tea, or from somewhere in between. It was warm and calming, and she caught herself breathing it in, letting her shoulders drop. The composed, always-in-control armor she wore like a second skin loosened, almost without her noticing.
<<speech "Adria">> "Everyone wants something from me." <</speech>> The words surprised her — she didn't tell people this. <<speech "Adria">> "The council, the clubs, the administration. Everyone needs the president to fix it. I don't remember the last time someone just — sat with me. Like I'm a person, not a job." <</speech>>
<<speech "Jasper">> "Then let me be that." <</speech>> His voice was soft, certain. <<speech "Jasper">> "You don't have to be in charge when you're with me, Adria. You can just be. I'll keep you safe, and you can put it all down." <</speech>>
She almost laughed at that — her, putting it all down. She'd been carrying the weight of the whole school since she was a freshman. But the words settled into her chest like a stone dropping into still water, and for the first time in years, she let herself imagine what it would feel like to stop holding everything up. It felt like falling. It felt like flying. She wasn't sure which.
The safety was real — the most seductive thing she'd ever felt. The girl who'd never let anyone hold her up felt, for the first time, like she could stop holding herself.
They met like that, week after week — the council office, the library, a bench by the quad. He never asked for anything. He never needed her to fix anything. He just sat with her, asked how her day had been, listened while she talked about the festival, about the council, about the thousand small fires she put out every day. He didn't offer solutions. He didn't tell her to slow down. He just sat there, calm and warm, and the wall she'd built around herself got thinner every time.
She caught herself looking for him. She'd find excuses to pass the library, to check if he was at his usual table, to invent reasons to stop by the council office when she knew he was helping. She told herself it was just nice to have someone who didn't want anything from her — who didn't need the president, who didn't need her to fix anything, who just wanted her company. She didn't admit, even to herself, how much she'd started to need that. How much she'd started to need him.
She went to his place that evening, and she didn't know why she'd worn the red sheer lingerie under her coat — but she did, and when she let it fall open on his white sofa, the look in his eyes was reverence, not hunger.
<video src="img/Adria/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "You're beautiful, Adria. You've been carrying the whole campus, and no one's ever carried you. Let me." <</speech>> His voice was soft, sure, and the warmth of it — the safety of it — was the most seductive thing she'd ever felt.
She'd spent her whole life being the one everyone relied on. She'd never once let herself be the one who leaned. But here, in his quiet, warm presence, she felt something she'd forgotten existed: the freedom of not having to be strong.
She lay back, legs spread, and touched herself through the sheer red panties, her eyes locked on him, her hips shifting — and for once, she wasn't performing. She wasn't the president, wasn't the mediator, wasn't the girl who had everything under control. She was just Adria, letting herself feel, letting herself want, letting herself be seen. It was the most vulnerable she'd ever been, and the safest she'd ever felt.
<video src="img/Adria/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Adria">> "I've never let anyone see me like this. I've never trusted anyone enough to." <</speech>> Her voice was small, honest — the president, unsure for once. <<speech "Adria">> "Everyone wants the president. The one who fixes things. No one's ever just wanted me." <</speech>>
<<speech "Jasper">> "Then I'm the first." <</speech>> He said it simply, like it was the most obvious thing in the world. <<speech "Jasper">> "And I'm not going anywhere, Adria." <</speech>>
The words sank into her, warm and certain, and she felt the last of her walls give way. She'd spent her whole life being strong for everyone. For once, she didn't have to be.
<<speech "Jasper">> "You can trust me. I'll never hurt you. I'll never let anyone else hurt you either." <</speech>>
She believed him, completely — the first person she'd ever let hold her up. The trust wasn't a choice she made; it was a door that had opened inside her and simply never closed. She lay awake that night, the memory of his warmth, his calm, the safety of his presence — and she knew, with a certainty that should have frightened her, that she'd found the one person she could put everything down for.
<<elseif _s is 2>>
She was at his place whenever she could be, and she was careful — a text about a late meeting, a plausible excuse. She told herself it was just the friendship. She told herself she was still the composed president who had everything under control. But her body knew where it belonged now, and it was with the man who made her feel like she could put it all down.
<img src="img/Adria/Corr1.jpg">
She came to him that evening, and she was uncertain in a way she never allowed herself to be. The composed president who ran everything had no script for this — no plan, no control, just the terrifying pull of needing someone.
<<speech "Adria">> "Jasper… this is crazy. I'm not this person. I run a council — I have everything under control. This isn't me." <</speech>> Her voice cracked. <<speech "Adria">> "I feel like I can't think straight. Like I need you. It scares me." <</speech>>
<<speech "Jasper">> "It doesn't have to scare you." <</speech>> He knelt to her level, gentle, taking her hand. <<speech "Jasper">> "Nothing you feel with me is wrong, Adria. You're safe with me. You can let go. I've got you." <</speech>>
She wanted to believe it. She wanted to run. But his voice, his warmth, the bond they'd built over weeks of quiet afternoons — it pulled her in, and she knelt, taking him into her mouth.
<img src="img/Adria/Corr2.jpg">
<video src="img/Adria/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She worked him deep and wet, eyes locked up at him, one hand stroking the shaft, her body angled so the straps of the lingerie showed — and she was uncertain, torn, ashamed and hungry all at once. He held her hair, guiding her gently, and she let him.
He pulled her to her feet, and she knelt before him, nude, and he took hold of the top of her head with one hand.
<video src="img/Adria/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Thick ropes landed across her tongue, her lips, her chin, and she kept her tongue out, eyes fluttering, letting it pool and drip while he pressed the head against her open mouth — then wrapped her fingers around him and took the head into her mouth, cleaning him, looking up at him with glazed, devoted eyes.
<<speech "Adria">> "I should go. I should — this isn't me — " <</speech>> She said it, but she didn't move.
<<speech "Jasper">> "Go home to your council if you need to. I won't stop you." <</speech>> He said it gently, and that made it worse. <<speech "Jasper">> "But I'll be here. And you'll come back." <</speech>>
She went home and lay awake, unable to sleep, the memory of his hands on her skin, his voice in her ear, the safety of his presence — and she knew he was right. She'd come back. She was already his. The wall she'd spent years building had crumbled without her even noticing, and in its place was something she'd never had before: the terrifying, wonderful freedom of trusting someone completely.
<<elseif _s is 3>>
She belonged to him, and she knew it, and she'd stopped pretending otherwise. Publicly she was still the composed student president — she kept the life, kept the smiles, kept the lie. Privately she was Jasper's, completely, and the trust she'd given him was total.
<img src="img/Adria/Corr3.jpg">
He had her in the dim bedroom, still in the black stockings and garter belt, and she was on all fours, looking back over her shoulder at him with adoring eyes as he drove into her from behind — deep, steady, his hand on her back.
<video src="img/Adria/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "You trust me completely, don't you, Adria?" <</speech>>
<<speech "Adria">> "Yes. Completely. I'd do anything for you." <</speech>>
He turned her onto her back, lifted her leg, and took her in missionary — deep and slow — and when he came inside her, she gasped his name, holding him, utterly his. He pulled out slowly, and she drew her own legs back, spread wide, smiling broadly while the creampie leaked and dripped from her.
<video src="img/Adria/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward he held her, and she pressed her face into his chest.
<<speech "Adria">> "I'm yours. Forever. I'd give up the council, everything, for you." <</speech>>
<<speech "Jasper">> "You don't have to give up anything." <</speech>> He stroked her hair, gentle, satisfied. <<speech "Jasper">> "You'll keep your place. Keep running the school. And you'll bring me the girls who carry everything alone — the ones like you were. You'll help them feel safe, the way I made you feel safe. And they'll be safe with me, too." <</speech>>
She nodded, and meant it, and dressed slowly, her hands steady, her face composed — the mask she'd worn her whole life, now worn for him.
She'd go back to the council, keep the composed facade, and quietly, lovingly, she'd build his circle — the first of many, brought to him by the girl who'd finally learned to let someone hold her up. No one would see anything wrong. The president would still mediate, still organize, still smile through every meeting. But when her phone buzzed with his name, she'd excuse herself, and she'd go to him, and she'd belong to him, and the campus never knew its untouchable president had already given herself away.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Adria/Normal.jpg">
<video src="img/Adria/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 2>>
<img src="img/Adria/Corr1.jpg">
<video src="img/Adria/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 3>>
<img src="img/Adria/Corr3.jpg">
<video src="img/Adria/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Adria/Normal.jpg">
<video src="img/Adria/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 2>>
<img src="img/Adria/Corr1.jpg">
<video src="img/Adria/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 3>>
<img src="img/Adria/Corr3.jpg">
<video src="img/Adria/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Adria/Normal.jpg">
<video src="img/Adria/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 2>>
<img src="img/Adria/Corr1.jpg">
<video src="img/Adria/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 3>>
<img src="img/Adria/Corr3.jpg">
<video src="img/Adria/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Kailey/Normal.jpg">
<video src="img/Kailey/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 2>>
<img src="img/Kailey/Corr1.jpg">
<video src="img/Kailey/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 3>>
<img src="img/Kailey/Corr3.jpg">
<video src="img/Kailey/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The student council office was quiet at the end of the day, and Adria was at her desk, finishing the spring festival budget she'd present to Vice Director Keisha in the morning. She was good at this — calm, capable, everything under control. Everyone said so. Everyone relied on her.
<img src="img/Adria/Normal.jpg">
Josh leaned in the doorway, watching her, and the sight of it — the composed, put-together girl with her whole life sorted — made something ugly twist in his chest. He'd spent years watching people like her, the ones who'd never had to claw for anything. This one had never looked at him at all.
<<speech "Josh">> "Burning the midnight oil, Madam President?" <</speech>> He didn't bother hiding the sneer.
Adria looked up, unimpressed. <<speech "Adria">> "Josh. If you're here about the parking fine, take it up with security." <</speech>>
<<speech "Josh">> "Parking fine. Right." <</speech>> He stepped in, slow, circling her desk. <<speech "Josh">> "You know what I love about you, Adria? The way you talk to everyone like they're a problem to be managed. Like you're so far above it all." <</speech>>
<<speech "Adria">> "I manage the student body. That's the job." <</speech>>
<<speech "Josh">> "Yeah, you manage it. Must feel good, being the girl everyone looks up to. You think you're better than me. Than all of us. The perfect little president with her perfect little life." <</speech>>
She stood, cool and composed, refusing to be rattled. <<speech "Adria">> "I don't think about you at all, Josh." <</speech>>
That was the last thing she said before the power hit.
It wasn't subtle. It was a tidal wave of heat that slammed into her from the inside, stealing her breath, scrambling every thought. Her knees buckled and she caught the desk, gasping, her thighs pressing together and parting, wet and aching. Her body was on fire, all of it centered on the man she'd just dismissed — and she couldn't move, couldn't think, could only feel, drowning in the lust he'd poured into her like poison into a vein.
<<speech "Josh">> "There she is." <</speech>> He caught her as her knees gave out, holding her up, watching her pupils blow wide. <<speech "Josh">> "The perfect, composed, put-together president. Look at you — shaking, wet, desperate. You can't even stand." <</speech>>
<<speech "Adria">> "Please — " <</speech>> She didn't know what she was begging for. She just knew she needed.
<<speech "Josh">> "Please what? Say it." <</speech>>
She couldn't. Her body was answering for her, hips rocking, hands reaching for him, the last shred of her will drowning under the heat.
He led her to the back room, where a bag sat on the chair. <<speech "Josh">> "Put it on. All of it. The pink set, the choker, the little heels with the feathers." <</speech>> He watched her change with shaking hands, and his voice changed — not just cruel, delighted. <<speech "Josh">> "Pretty. That's all you need to be from now on. I'm going to make you into the best little bimbo this campus has ever seen." <</speech>>
<img src="img/Adria/Corr2.jpg">
The word landed like a slap. Some distant part of her that was still the president wanted to laugh in his face. Bimbo. Her. She was the smartest girl in every room she entered. But the heat was a leash and he held it, and her hands finished the buttons anyway — the sheer pink lace set, the rose-and-heart choker, the sparkly silver heels with the white feathers.
<video src="img/Adria/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her out on the cowhide rug in the middle of the room and made her pose — adjusting the straps, running her hands over her body, pulling the lace aside, the way a man shows off a new purchase. <<speech "Josh">> "Look at you. The girl everyone looks up to, dressed like a doll." <</speech>> He grabbed her chin, made her look up. <<speech "Josh">> "What do you think the student body would say if they could see their president now?" <</speech>>
She shook her head — the last protest — but her hands moved anyway, and she couldn't stop showing herself off for him.
Then he took her to the mirror room. He stripped her to the waist, pushed the striped bandeau down under her breasts, and knelt her before the big glass, her white sneakers the only thing she had left on. <<speech "Josh">> "Watch," <</speech>> he said. <<speech "Josh">> "This is the first lesson. You're going to learn to see yourself the way the world will see you now — as something pretty to be used." <</speech>>
<video src="img/Adria/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He made her touch herself in front of the glass, slow and shameless, until her breath came in pieces. The mirror showed her everything — the flush, the open mouth, the way she watched herself and couldn't look away. <<speech "Josh">> "Look at her," <</speech>> he whispered against her ear. <<speech "Josh">> "Isn't she pretty? Isn't she dumb and pretty? Say it." <</speech>> She shook her head. <<speech "Josh">> "Say it, or I'll make you start over." <</speech>> <<speech "Adria">> "I'm — " <</speech>> her voice broke. <<speech "Adria">> "I'm pretty." <</speech>> <<speech "Josh">> "Dumb and pretty." <</speech>> <<speech "Adria">> "I'm... dumb and pretty." <</speech>>
He kept her at it until she came apart on the floor, crying, hating him, hating herself. When she was done he wiped the wetness from her mouth. <<speech "Josh">> "Good girl. Now you know what you're for." <</speech>> He stood. <<speech "Josh">> "And when you come back — and you will come back — you'll call me Master." <</speech>>
She went home that night with the word bimbo burning behind her teeth, and told herself, over and over, that she would never, ever go back.
<<elseif _s is 2>>
She told herself she wouldn't go back. She lasted a council meeting, then another, telling herself each time that it was a fever, a mistake. But she'd caught herself staring at the clock mid-vote, thinking about his voice. She'd snapped a pencil in half without noticing. The smartest girl on campus was losing her edge, and she knew whose fault it was.
She went to his place to tell him to leave her alone. To end it. That was the plan. And somewhere between the door of her building and the door of his, the plan had come apart — because when she knocked, she was wearing the pink lace set and the rose choker, and she couldn't remember putting them on.
<img src="img/Adria/Corr2.jpg">
He was waiting, lounging on the couch, and the look in his eyes was pure satisfaction. <<speech "Josh">> "The president, crawling back. I was starting to think I'd have to come find you." <</speech>>
<<speech "Adria">> "I came to tell you to stop." <</speech>> Her voice cracked. <<speech "Adria">> "This — whatever this is. I can't think anymore. I lost my place in a vote today. I never lose my place. You're making me — " <</speech>>
<<speech "Josh">> "Dumb?" <</speech>> He laughed, soft and cruel. <<speech "Josh">> "Yeah. That's the point. I told you what you're for now. Pretty and empty. You're just upset because your head's finally catching up to the rest of you." <</speech>>
She tried to step back — and her knees buckled, the heat roaring through her at his voice alone. He grabbed her jaw, forced her to look at him — and hit her with the power again, a fresh wave of heat that crashed through her like a physical blow. <<speech "Josh">> "I lit you up," <</speech>> he said, <<speech "Josh">> "and I'm the only one who can put it out." <</speech>> Her knees gave out and he caught her, lowering her to the floor, her body arching, desperate, already his.
She knelt there, panting, drowning, tears on her cheeks, and he took the padlock choker from his pocket and fastened it around her throat. <<speech "Josh">> "See this?" <</speech>> He snapped the little gold lock shut. <<speech "Josh">> "This is so that even you remember whose head this is now. I hold the key. And every time you feel it, you'll remember who you belong to." <</speech>>
She should have run, clawed her way out, called someone. But the fire was roaring in her blood, and the part of her that was still the president was losing ground fast.
<video src="img/Adria/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She took him into her mouth — eager, desperate, sick with it — her lips and tongue working him while she stroked the shaft, saliva glistening, eyes locked up at him. He grabbed her hair and fucked her mouth with rough, shallow thrusts, and she let him, her body humming, her mind gone.
<<speech "Josh">> "Good girl." <</speech>> He pulled her off, worked the rose choker free, and replaced it with the padlock one. <<speech "Josh">> "Time to upgrade you." <</speech>>
<video src="img/Adria/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He made her look up, her mouth wide and her tongue out, the padlock glinting at her throat — and he finished across it, thick and white, painting her lips and chin. <<speech "Josh">> "Swallow." <</speech>> She swallowed. <<speech "Josh">> "Now say thank you." <</speech>> She opened her mouth and the word came out wrong — soft and slurred, like her tongue didn't belong to her anymore. <<speech "Adria">> "Th-thank you... Maaaster." <</speech>> The sound of it cut through the haze like a wire. <<speech "Adria">> "I — I didn't mean — " <</speech>> He was grinning down at her, delighted. <<speech "Josh">> "Say it again." <</speech>> <<speech "Adria">> "Maaaster." <</speech>> <<speech "Josh">> "Again." <</speech>> <<speech "Adria">> "Maaaster... " <</speech>> She was crying, and she couldn't stop saying it, and the more she cried the more it slurred, and the more it slurred the happier he looked.
<<speech "Josh">> "There's my girl." <</speech>> He let her go with a pat on the head, the way you'd dismiss a dog. <<speech "Josh">> "Get dressed. Go run your little council. Smile at them. Let them think you're still in charge." <</speech>>
She went home and lay awake, trembling, the padlock cold at her throat, and the horror came back in the dark — but so did the ache. And underneath the ache, something worse. She wanted to say it again.
<<elseif _s is 3>>
She didn't knock. She knelt at his door, and waited, and when it opened she looked up at him with a slow, empty, perfect smile, and the word came out exactly the way he'd taught it. <<speech "Adria">> "Maaasteeer." <</speech>>
He laughed, delighted, and pulled her inside. <<speech "Josh">> "There she is. The smartest girl on this campus. You know what I love? They all still think you're running things." <</speech>> She blinked up at him, her smile not moving. <<speech "Adria">> "Why would I wanna run things, Maaasteeer? That sounds like work." <</speech>> He ruffled her hair like she was a pet. <<speech "Josh">> "God, I love this." <</speech>>
She undressed without being told, folded her clothes into a neat little pile the way she used to fold council reports, and knelt for him, the flower-and-lock choker around her throat, the word bimbo sitting in her head as comfortably as her own name.
<img src="img/Adria/Corr3.jpg">
He had her on the yellow seat in the bright loft, legs raised and spread, pink panties pulled aside, and she took him with a wide, giggling smile that melted into open-mouthed moans as the pace went on. He pulled her onto the light sofa, and she rode him in reverse, looking back at him with that empty, happy face, chanting his name between breaths.
<video src="img/Adria/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Look at you," <</speech>> he said, breathless. <<speech "Josh">> "Look at what I made. The girl who ran the school. Can you even spell 'president' anymore?" <</speech>> She giggled, head lolling. <<speech "Adria">> "Mmm... don't wanna. Head gets all fuzzy, Maaasteeer. I'm just your dumb little bimbo now." <</speech>> <<speech "Josh">> "That's my girl." <</speech>>
He laid her back on the white sofa, her thighs raised in the white stockings, and drove into her — her mouth open in continuous, brainless moans, one hand spread between her own legs for him, completely lost. When he pulled out she was glistening and slightly open, a thin string of fluid stretching between them, and she kept her hand on herself, looking up at him with that soft, open-mouthed smile, waiting for whatever he wanted next.
<video src="img/Adria/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward he crouched beside her and wiped a strand from her cheek, almost gentle. <<speech "Josh">> "You did good, sweetheart. You know what I love most about you now? You're not ashamed anymore. You were so proud when I took you. God, I love breaking the proud ones." <</speech>> She looked up at him, and there was nothing behind her eyes but him. <<speech "Adria">> "I'm yours, Maaasteeer." <</speech>> <<speech "Josh">> "That's right. Now get dressed. Go sit in your meetings. Smile at them. Let them keep thinking the smartest girl on campus is still running things — that's the funniest joke I've ever told." <</speech>>
She went back to her council and sat in her chair and smiled, and nobody noticed anything. Even the campus rumor mill, which caught everything, caught only one thing — that the president had gotten prettier lately, somehow. And Adria sat through the whole meeting with the word Maaasteeer going soft and slow behind her teeth, waiting for the night, when she could kneel again and say it the right way.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The email was from campus administration: the Student Council's spring festival budget needed a compliance review, and Dr. Caldwell — head of campus standards and security — had requested the president attend in person. Adria had dealt with him before, at a disciplinary hearing where he'd dismissed her with barely a glance. Cold, efficient, respected and feared. She wasn't intimidated. She was the student council president; she'd handled far worse.
<img src="img/Adria/Normal.jpg">
His office was a high-rise room with floor-to-ceiling windows over the city, a red tufted couch, and a man behind the desk who looked at her the way you'd look at a specimen under glass.
<<speech "Caldwell">> "Miss Adria. The student body's great little manager." <</speech>> He didn't stand, didn't offer a seat, didn't smile. He just looked at her, cold and bored. <<speech "Caldwell">> "Sit. I don't have all evening." <</speech>>
She sat, folding her hands, keeping her composure. <<speech "Adria">> "I'm happy to walk you through the budget, Dr. Caldwell." <</speech>>
<<speech "Caldwell">> "I'm sure you are." <</speech>> He made a note without looking at her. <<speech "Caldwell">> "You know what I see when I look at you, Miss Adria? A girl who's built her whole identity on being in charge. On being the one everyone looks up to. It's a costume. And costumes — " <</speech>> He finally looked at her, and his eyes were flat, cruel. <<speech "Caldwell">> " — come off." <</speech>>
She blinked, thrown. <<speech "Adria">> "I don't understand what you mean." <</speech>>
<<speech "Caldwell">> "You will." <</speech>>
The projector hummed to life behind her — soft colors, a low rhythm. He gestured to the red couch. <<speech "Caldwell">> "The review requires a demonstration of composure under professional pressure. Undress. Slowly." <</speech>>
She hesitated — and that hesitation was her last moment of control. The hum sank into her bones, and her thoughts went slow and soft. The composed, capable president who'd never learned to say no to an authority — folded like paper. Her pride, her composure, her sense of self dissolved like sugar in water.
She pulled the black tank top up and off, unzipped the gray skirt and let it slide down her hips, revealing the black lace thong. She stood in just her bra and thong, and he watched her with cold, clinical satisfaction — the way you'd watch a dog perform a trick. Then he told her to show him, and the president of the student body climbed onto the red couch, sat back with her legs spread, leaned on one arm, and slid her hand between her legs to rub herself over the lace — looking at him with a playful smile, biting her lip, one hand drifting up to cover her mouth, the composed girl reduced to a pose.
<<speech "Caldwell">> "The president. The girl who runs the student body. Bare in her underthings on a professor's instruction, and she can't even remember why she shouldn't be." <</speech>> He circled her, slow, the contempt thick in his voice. <<speech "Caldwell">> "You were so important, weren't you? So in control. And look at you now — a warm little animal, waiting to be told what to do." <</speech>>
<video src="img/Adria/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There. The great campus president, undressing for a man she doesn't even like. You were so proud of being in charge — and look how easily you obey." <</speech>> His voice was silk, cutting. <<speech "Caldwell">> "All that authority, all that poise — and it collapses the moment someone with real power tells you to undress. You were never in charge, Miss Adria. You were just the most decorated of the animals." <</speech>>
He looked at her like she was beneath him, and the contempt in his voice made her stomach drop — and yet her body kept obeying, kept wanting his approval, kept betraying her.
He laid her back on the red couch, spread her legs, and knelt between them — older, muscular, sure of himself — and worked her with his fingers, slow and deliberate, spreading her open, rubbing her clit in steady circles until she was moaning, covering her mouth, her hips shifting.
<video src="img/Adria/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She came with a muffled cry, her hand clamped over her mouth, her body shuddering — and he looked up at her, clinical and satisfied, the way you'd look at a machine that had done its job. He made a note. He always made notes.
<<speech "Caldwell">> "You'll do. The review continues — privately, with you. You'll come when I call." <</speech>> His smile was thin, cruel. <<speech "Caldwell">> "And you'll remember nothing you shouldn't." <</speech>>
She left his office in a daze, her body still humming, her thoughts quiet in a way they never were. She'd come in as the president, and she'd left as something she couldn't name. She told herself it was the review, the stress, a strange day. She told herself she wouldn't go back. And even as she said it, she knew she would.
<<elseif _s is 2>>
She didn't remember deciding to come. She only knew her feet carried her to the high-rise office, that her phone had buzzed with his summons and her body had obeyed. She'd told herself she wouldn't — she'd told herself a hundred times, standing in front of her mirror, arguing with her own reflection. But the call had come, and she was home, still in her blazer, the white shirt undone, and she'd walked out anyway, half-dressed, unable to stop herself. Some part of her was screaming. The rest of her was already his.
<img src="img/Adria/Corr1.jpg">
He was waiting, seated, and he didn't look up as she came in.
<<speech "Caldwell">> "You came straight from home, still in your work clothes. The conditioning is holding." <</speech>> He finally looked at her, and the contempt in his eyes made her stomach drop. <<speech "Caldwell">> "Kneel." <</speech>>
She knelt — and the protest rose, her pride clawing for one last hold. <<speech "Adria">> "Dr. Caldwell, I — this isn't right. I don't know why I keep — " <</speech>>
<<speech "Caldwell">> "You keep coming because your body knows what it's for now, Miss Adria." <</speech>> He stood, unzipping, and the contempt in his voice was a blade. <<speech "Caldwell">> "The great president, on her knees in her work clothes for a man she should be running from. How pathetic. How utterly, delightfully pathetic." <</speech>>
She took him into her mouth — obedient, practiced, hollow — while he gripped the back of her head, not guiding, owning.
<video src="img/Adria/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Look at you. The girl who ran the whole student body, reduced to a warm mouth for her betters. You think you're better than the other girls because you led them? You're not. You're just easier to break because you were so proud of being in charge." <</speech>> He pulled her off, made her look up, spit and need glistening on her lips. <<speech "Caldwell">> "Say it. Say what you are now. Tell me what the great president has been reduced to." <</speech>>
<<speech "Adria">> "I'm — " <</speech>> The words stuck in her throat, her pride clawing for one last hold.
<<speech "Caldwell">> "Say it. Say what you are now. Tell me what the great president has been reduced to." <</speech>>
<<speech "Adria">> "I'm — " <</speech>> The words stuck in her throat, her pride clawing for one last hold.
<<speech "Caldwell">> "Say it, you stupid thing." <</speech>>
<<speech "Adria">> "I'm your whore." <</speech>> The words came out wrecked, and the shame was a fire, and she hated how much she wanted his approval anyway — hated that saying it had made something in her go quiet and still, like a dog that had finally learned its place.
<<speech "Caldwell">> "Good. There's hope for you yet, Miss Adria. Now open your mouth and finish what you started." <</speech>>
He pulled her to the black bench, laid her back, her head over the edge, and stood over her.
<video src="img/Adria/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He came across her tongue, her lips, her chin — thick ropes dripping down her face — and she kept her tongue out, eyes half-closed, receiving it, her hands brushing her own breasts.
When he was done, he crouched, wiped a strand from her cheek — almost tender, which made it worse.
<<speech "Caldwell">> "Go home. Run your little council. Smile for them. Let them think you're still in charge." <</speech>> His voice was soft, cruel. <<speech "Caldwell">> "And know that when I call, you'll come crawling." <</speech>>
<<elseif _s is 3>>
She came when he called, every time, no matter the hour. The fog was no longer a fog — it was her, and she was it. Publicly she was still Adria, the composed student president, everyone's pillar. Privately she was Caldwell's — a perfect, hollow vessel, waiting for his voice.
<img src="img/Adria/Corr3.jpg">
He had her in the plain white-walled room, and she straddled him, riding him in cowgirl — her face shifting from focused pleasure to a wide, bright smile as she looked at the camera, raising her arms above her head, arching her back, his hands gripping her hips and ass.
<video src="img/Adria/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Look at you. The student body's great leader, riding a professor's cock like the stupid little animal you are." <</speech>> His voice was low, dripping contempt. <<speech "Caldwell">> "You were so proud, weren't you? So important. And now you're just a thing for me to use — a warm, empty thing that exists to serve. You're not a person to me anymore, Miss Adria. You're an animal. My animal. And animals don't get to be proud." <</speech>>
<<speech "Adria">> "Yes, Master." <</speech>> The words came easily now.
He turned her over the desk, and she lay prone, her face against the wood, as he took her from behind — deep, steady thrusts, her body rocking forward with every impact.
<video src="img/Adria/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward he stood over her, satisfied, looking down at the girl who'd once run the whole school.
<<speech "Caldwell">> "You'll keep your life, Miss Adria. Keep the council, keep your friends, keep your little empire." <</speech>> He smiled, cold and pleased, looking down at her like she was nothing. <<speech "Caldwell">> "You'll be my eyes in the student government. You'll tell me which girls are proud — the ones who think they're above this — and you'll bring them to me. The proud ones are always the sweetest to break, and you were one of the sweetest I've ever had." <</speech>>
<<speech "Adria">> "Yes, Master." <</speech>> She said it without a flicker of hesitation. The pride he'd broken was gone. There was only him now.
She nodded, hollow and willing, and dressed slowly, her hands steady, her face blank — the way he'd trained her.
She went back to her council that week, and smiled, and mediated disputes, and stood at the podium — the composed, capable president everyone admired. No one saw anything wrong. No one noticed the way she went quiet when her phone buzzed, or the way she excused herself from meetings early, or the hollow look in her eyes when she thought no one was watching. The girl who'd run the whole school was running it for him now — her Master's voice humming in her blood, his orders the only ones she heard. And the campus never knew its untouchable president was already his.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The student council had been meeting every week for a month now, and Nathan had noticed something: the president was always the first one there and the last one to leave. Adria ran the room like a machine — agendas, votes, mediation, all of it smooth and controlled. She never once looked tired. She never once looked like she needed help.
He'd been brought in to help with the spring festival logistics — someone had vouched for him as "good with the boring stuff" — and he'd ended up staying after the meeting to help her stack chairs. That was how it started.
<<speech "Adria">> "You don't have to stay. I can handle this." <</speech>> She said it the way she said everything — capable, final.
<img src="img/Adria/Normal.jpg">
<<speech "Nathan">> "I know you can." <</speech>> He picked up a chair anyway. <<speech "Nathan">> "That's kind of the point. You handle everything. Everyone relies on you, and you never let anyone help back." <</speech>>
She paused, chair in hand, and looked at him. No one said that to her. Everyone took. <<speech "Adria">> "That's the job." <</speech>>
<<speech "Nathan">> "It's not a job. It's a wall." <</speech>> He said it gently, without judgment.
She stared at him, the chair forgotten in her hands. <<speech "Adria">> "What's that supposed to mean?" <</speech>>
<<speech "Nathan">> "It means you've made yourself so reliable that nobody thinks to ask if you're okay. You're the one everyone comes to, so no one comes for you. And you've gotten so good at holding everything together that you've forgotten how to let go." <</speech>> He shrugged, easy, not unkind. <<speech "Nathan">> "I recognize it. I did the same thing once." <</speech>>
<<speech "Adria">> "And what broke you out of it?" <</speech>> She asked before she could stop herself, genuinely curious.
<<speech "Nathan">> "Someone decided I was worth holding up." <</speech>> He smiled at her, warm. <<speech "Nathan">> "I want to be that for you, Adria." <</speech>>
The words hung in the air between them, and she felt something shift in her chest — something she'd locked away so long she'd forgotten it was there. <<speech "Nathan">> "I know what walls look like. I built a few myself, once. After a friend of mine turned on me — I stopped letting people in too. It took a long time to learn that the people who love you are the ones who want to carry you sometimes, not the other way around." <</speech>>
The confession hung in the air. She'd never heard him talk about himself like that. <<speech "Adria">> "I'm sorry. That sounds like it hurt." <</speech>>
<<speech "Nathan">> "It did. But I'd rather love people and risk it than build walls forever." <</speech>> He smiled at her, warm and real. <<speech "Nathan">> "You're the most capable person I know, Adria. That's exactly why I want to be the one who carries you for once." <</speech>>
The warmth that bloomed in her chest was enormous and terrifying. She'd spent so long being the one who held everything together that she'd forgotten what it felt like to be held. And here was this quiet boy, looking at her like she was just a girl, not a title.
They kept meeting. He'd bring her tea — the one from the café she liked, which he'd somehow memorized — and walk her home, and ask about her day and actually listen, and stay to help her stack chairs even after she'd told him she could handle it. He never pushed. He never asked for anything. He just showed up, warm and steady, and let her come to him at her own pace. And she did — slowly, then faster, then like it was the only direction she'd ever wanted to go. She started finding reasons to linger after meetings. She started looking for him in the hallway. The wall she'd built got a little thinner every time, and the warmth got a little bigger, and she caught herself thinking about him at the worst moments — in the middle of a budget meeting, at a mediation, lying awake at night.
That evening, at his place, she pulled her white crop top down, slow, freeing her breasts, looking at him with a bright, shy smile — the president, undone for once.
<video src="img/Adria/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "You're beautiful, Adria. You don't have to perform for me. You never do." <</speech>>
Then they were on the white couch, and it stopped being gentle. She pulled him down into her, arms locked around his neck, fingers in his hair, and they made out like neither of them had done since they were teenagers — mouths open, hungry, breathless, his hands flat on her bare back, her bare chest pressed against his shirt, kiss after deep kiss that she didn't want to end. The president who scheduled everything lost track of time entirely, topless in his arms, wanted, loved.
Then he sat back, and asked — not told, asked — to see her. And the president of the student council lay back on the couch, completely nude, legs spread wide, and touched herself for him — fingers rubbing and circling, spreading herself open, her head tilting back and then lifting again, soft smiles breaking through the pleasure — because he watched her like it was a gift. She'd never let anyone see her like this. She'd never let anyone in.
<video src="img/Adria/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Adria">> "I don't know how to do this. I've never let anyone this close." <</speech>> Her voice was small, honest — the president, unsure for once. <<speech "Adria">> "I don't want to lose me in it. I've worked so hard to be who I am." <</speech>>
<<speech "Nathan">> "You won't lose yourself. You'll just finally have someone to hold you up while you're being it." <</speech>> He brushed a strand of hair from her face, gentle. <<speech "Nathan">> "The girl who runs everything — she deserves someone who runs to her. Not for what she can do. Just for her." <</speech>>
She didn't know how to answer that. No one had ever wanted her just for her. Everyone wanted the president, the mediator, the capable one. But he was looking at her like she was the only person in the room, and the warmth in her chest was a tide she couldn't hold back.
<<speech "Nathan">> "You won't lose yourself. You'll just finally have someone to hold you up while you're being it." <</speech>> He kissed her forehead. <<speech "Nathan">> "I want to be that for you, Adria. That's all." <</speech>>
She believed him. And the wall she'd built around herself cracked, just a little — the first crack in years.
She walked home that night light-headed, replaying his words. No one had ever offered to carry her. No one had ever looked at the president and seen the girl underneath — the one who was tired, who was lonely, who'd been so busy being strong for everyone that she'd forgotten she was allowed to need someone. She'd spent her whole life building the wall. She'd never once considered what it would feel like to let it fall.
<<elseif _s is 2>>
She was falling for him, and it scared her. The composed, capable president who mediated everything — she caught herself smiling at her phone in meetings, thinking about him at the worst moments. She told herself it was just a crush. But she'd started wearing the black lace set under her blazer, and she knew exactly why.
She came to his place that evening, and she was uncertain in a way she never allowed herself to be. The composed president who mediated everything had no script for this — no agenda, no talking points, just the terrifying, wonderful feeling of falling.
<<speech "Adria">> "Nathan… this is moving fast. I'm not — I've never let anyone see me like this. What if I lose myself in you?" <</speech>>
<<speech "Nathan">> "Then I'll be there to hold you up while you find yourself again." <</speech>> He took her hand, gentle. <<speech "Nathan">> "I'm not trying to rush you, Adria. I just want to be good to you. That's all I've ever wanted." <</speech>>
She believed him. She trusted him. And the trust was pulling her toward him faster than her fear could keep up.
He undressed her slowly — the blazer, the white shirt, the black lace — and she knelt before him in the mint crop top and denim shorts she'd changed into, looking up at him, uncertain and hungry.
<img src="img/Adria/Corr1.jpg">
<video src="img/Adria/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She took him into her mouth, slow at first, then deeper, cheeks hollowing, eyes looking up at him through her lashes. His hand rested on the back of her head — not guiding, just there, warm. She wanted to be good for him. She wanted to be worth the way he looked at her.
<<speech "Adria">> "I don't understand what you're doing to me. I can't stop thinking about you. It's like I've never — " <</speech>> She shook her head, flustered. <<speech "Adria">> "This isn't me. I don't do this." <</speech>>
He drew her to the wall, and she looked up at him, lips wet, and let him finish across her tongue and chin, gathering it with her fingers, licking them clean.
<video src="img/Adria/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Then the doubt crashed back. <<speech "Adria">> "I should go. This is too much, too fast. I need to think." <</speech>> She stood, flustered, reaching for her clothes.
<<speech "Nathan">> "Okay." <</speech>> He didn't stop her, didn't push. <<speech "Nathan">> "Take your time, Adria. I'm not going anywhere." <</speech>>
She left. She went home and lay awake, staring at the ceiling, telling herself she was being foolish, telling herself she had everything under control, telling herself she didn't need anyone. And then she picked up her phone, and she texted him, and she hated how fast her heart raced when he replied — hated it, and loved it, and couldn't have stopped either way.
<<elseif _s is 3>>
She loved him. It was that simple, and she'd stopped fighting it. She still ran the council, still mediated everything, still smiled through the meetings — but her heart belonged to Nathan, and she told him so every chance she got. The wall she'd built around herself was gone. He'd held her up until she didn't need it anymore.
<img src="img/Adria/Corr3.jpg">
He had her in his bathroom, the tile floor wet and warm, and she lay back, completely bare, legs spread, as he knelt between them and drove into her — slow and deep, one leg raised high over his arm, her body rocking with every thrust.
<video src="img/Adria/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Adria">> "I love you, Nathan. I love you so much." <</speech>>
<<speech "Nathan">> "I love you too, Adria. You're the most important person in my life." <</speech>>
He took her again, both legs raised and held, her body glistening in the warm light, and when he pulled out, a string of them connecting, she looked up at him with a soft, open-mouthed smile — completely, utterly his. The girl who'd never let anyone hold her up had finally let someone hold everything. And it was the safest she'd ever felt.
<video src="img/Adria/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay in his arms on the bathroom floor, glowing.
<<speech "Adria">> "I'm happy. I didn't know I could be this happy and still be me." <</speech>> She pressed a kiss to his chest. <<speech "Adria">> "You held me up until I didn't need walls anymore. I love you for that. I love you for everything." <</speech>>
He held her tighter, and the thought rose — this was why he'd sworn off hate. This was what love was supposed to be. People being good to each other, holding each other up. Her smile, warm against his chest, was proof enough.
Her friends noticed the president was softer now, always smiling at her phone, always a little distracted, always humming some song she couldn't name. They thought it was cute — the campus's most capable girl, finally in love. They didn't know it was him, and she didn't mind keeping it that way. Some things were just hers. And he was the best of them.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Lana/Normal.jpg">
The email said she'd been flagged for a "mandatory academic integrity review" — some form she'd supposedly missed, some box she hadn't ticked. Lana read it twice, annoyed, then printed it out and walked to the office, ready to sort it out and leave. She had things to do.
Caldwell's office was dim and smelled of old paper. He was behind the desk, and he gestured to the chair. <<speech "Caldwell">> "Miss Lana. Thank you for coming in." <</speech>>
<<speech "Lana">> "Sure. The email said there's a form issue?" <</speech>> She sat, crossing one leg. <<speech "Lana">> "I checked my records on the way over — I don't have anything outstanding. Is this about the sociology department's cross-registration thing? Because I filed that already." <</speech>>
Caldwell's smile was thin, patient. <<speech "Caldwell">> "It's not about a form, Miss Lana. It's about the integrity review itself — a standard process for students in positions of responsibility. A short focus exercise to ensure your values align with the institution's. Twenty minutes, and you'll be on your way." <</speech>>
Lana frowned. She didn't like it. She'd had professors pull her aside before — she was opinionated in class, and some of them didn't take it well — and she'd learned to just smile and sit through the "conversations" and leave with her record intact. This felt different, but she couldn't say why, and she couldn't afford to be difficult with an official review on her file. Refusing would look worse than complying. <<speech "Lana">> "Fine. But I'm timing you — I've got a study group at four." <</speech>>
The spiral began to turn on the projector screen, and his voice came layered under the hum.
<<speech "Caldwell">> (recording) Breathe in. Breathe out. Your thoughts slow. <</speech>> <<speech "Caldwell">> (recording) Your shoulders drop. Your mind empties. You are safe here. You are understood. <</speech>>
She watched it, skeptical, arms crossed — she was too sharp for a screensaver. But the voice kept threading under the hum, and the spiral kept turning, and somewhere past the half-hour mark — the clock had long crossed the hour — she sat perfectly still, head tilted, eyes fixed and glassy, a faint, empty smile on her lips.
<<speech "Caldwell">> "Stand up, Lana." <</speech>>
She stood. He led her to the bright office with the white shutters, and she changed into the beige satin blouse, the black skirt, the stockings — because he told her to, and she couldn't remember why that felt wrong. His voice was a blade.
<<speech "Caldwell">> "You walked in here with your guard up, ready to argue your way out of a form. Look at you now — you can't even remember what form. You're the kind of girl who thinks her sharp tongue makes her safe. It makes you a target, Lana. And now you belong to me." <</speech>>
Her lips parted. A faint blush climbed her neck. She wanted his approval — she didn't know why — and she couldn't stop the small, eager smile that crept across her face.
He pulled her onto his lap so she straddled him, gripping her ass and thighs, his face buried against her chest and neck while she held his head, one hand sliding under her skirt, pushing the fabric up — and she rocked against him, her eyes half-lidded, making soft sounds, not understanding why she couldn't stop.
<video src="img/Lana/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her back on the white desk, and she lay in the pink lace bra, cups down, her legs spread and raised — and he knelt between them, shirtless, and put his mouth on her, and she gasped, her hand on his head, guiding him, her body tensing with each stroke of his tongue.
<video src="img/Lana/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When she came back to herself, she was dressed, sitting in the chair, and the review was over — and she couldn't remember a single question she'd been asked, only that she'd be back for the follow-up.
<<elseif _s is 2>>
The email came mid-week: *Integrity review — follow-up. Your attendance is required.* Lana told herself it was routine. She dressed carefully — she couldn't remember why she'd bought the sheer black set, only that she wanted to look good — and she walked across campus, and she didn't think about the office at all.
<img src="img/Lana/Corr1.jpg">
Caldwell opened the door. <<speech "Lana">> "Dr. Caldwell. The follow-up." <</speech>>
<<speech "Caldwell">> "Yes. Close the door, Lana. Lock it." <</speech>>
She did, without deciding to. The projector was already on, and his voice wrapped around her before she could finish the thought.
<<speech "Caldwell">> (recording) You trust me, Lana. You've always trusted me. Kneel. <</speech>>
Her knees bent. A flicker of confusion crossed her face — <<speech "Lana">> "I — what — " <</speech>> — and he looked down at her with open, ugly pleasure.
<<speech "Caldwell">> "Don't pretend to be surprised. You came because I told you to. You're not here for a review, Lana. You're here because you belong to me now." <</speech>>
She knelt on the hardwood floor, in the beige blouse hanging open, and she took him into her mouth, looking up at him with wide eyes, working him with her hand and mouth, and she didn't understand why she couldn't stop, why she wanted his approval so badly.
<video src="img/Lana/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up, and she knelt nude, and he came across her tongue and lips, and she kept her mouth open, accepting it, licking the rest from the head while looking up at him.
<video src="img/Lana/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "You walked in here sure of yourself. Now you can't even argue that you don't want this." <</speech>> He wiped a strand from her chin. <<speech "Caldwell">> "Go home. Go to your study group. Be the girl everyone thinks is fine." <</speech>>
She went home, and went to her study group, and sat through it smiling — and she couldn't remember a single thing anyone said.
<<elseif _s is 3>>
She was at her apartment when the pull hit — a low, insistent hum she couldn't name. She stood mid-sentence, left her notes on the table, and walked. She didn't remember deciding. She only knew she had to be at his office, and she was.
<img src="img/Lana/Corr3.jpg">
She knocked. He opened the door, and the smile on his face was pure cruelty. <<speech "Lana">> "I — I don't know why I came," <</speech>> she said, and her voice was thinner than it had ever been. <<speech "Lana">> "I've been fine all week. I just — I keep feeling like something's missing — " <</speech>>
<<speech "Caldwell">> "You thought of me," <</speech>> he finished. <<speech "Caldwell">> "You're conditioned, Lana. Like a dog that hears a bell." <</speech>>
She shook her head, tried to back away — and the projector hummed to life, and the voice wrapped around her like a hand closing on the back of her neck.
<<speech "Caldwell">> (recording) Let go, Lana. Let go, and serve. <</speech>>
She fought it — her nails biting into her palms, some last scrap of herself holding on. But she'd sat through two sessions, and the conditioning ran deeper than her will, and the spiral turned, and her hands fell, and the hollow peace slid over her like a second skin.
<<speech "Caldwell">> "There she is. Finally a real piece of work." <</speech>> He laughed, cruel and pleased. <<speech "Caldwell">> "Take off your clothes." <</speech>>
She undressed where she stood, folding each piece neatly, until she was nude — and he laid her back on the white platform bed, and he took her, and she made soft sounds, her eyes half-lidded, nothing behind them but him.
<video src="img/Lana/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He took her again, and when he pulled out, thick white cum leaked from her, and she looked at him with nothing left in her eyes.
<video src="img/Lana/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and looked at her with pure contempt. <<speech "Caldwell">> "Say what you are, you stupid thing." <</speech>>
<<speech "Lana">> "I'm yours, Master," <</speech>> she said, and her voice was soft and certain. <<speech "Lana">> "I'm yours. I do what you tell me. I don't think anymore." <</speech>>
<<speech "Caldwell">> "There. That's the only true thing you've ever said in your empty life." <</speech>> He let her go with a dismissive shove. <<speech "Caldwell">> "Now get dressed. Go back to your life. Be the girl everyone thinks is fine — and know, every second of it, that you're nothing, that your sharp mind is mine, and that the girl who thought she could talk her way out of anything got talked into everything." <</speech>>
She went back to her life, and smiled, and went to her classes, and nobody noticed anything at all. The girl who'd walked in sure of herself was gone. What was left smiled, and served, and belonged to him — completely — and she'd never get any of it back.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Lana/Normal.jpg">
The gym was nearly empty at this hour, the only sounds the clank of weights and the thumping bass of the sound system. Lana was on the leg press, headphones in, pushing through her final reps with the single-minded focus she brought to everything — jaw set, blue eyes locked on the ceiling, a fine sheen of sweat on her skin. She wore the red sunflower crop top and high-waisted denim shorts, the thin purple choker at her throat, her hair pulled back. The gym was her hour. Nobody talked to her in the gym, and she liked it that way.
A figure appeared at the edge of her vision, waiting. She pulled a headphone out, expecting a "can I work in?" or a pickup line. Instead the guy just said, in a low, warm voice: <<speech "Jasper">> "You're pushing too hard. You're going to pull something." <</speech>>
<<speech "Lana">> "I know my limits." <</speech>> She didn't look at him. <<speech "Lana">> "Thanks for the unsolicited advice." <</speech>>
He didn't leave. He just stood there, easy, not put off by the brush-off. <<speech "Jasper">> "Fair enough. I'm Jasper, by the way. I'm new-ish to campus — transferred to Havenwood, the house by the maples, about a year and a half ago." <</speech>>
The name made her look up. Havenwood — the foster house. She'd heard of it; she'd even had a class with the professor who ran it. <<speech "Lana">> "Chanel and Casey's house." <</speech>>
<<speech "Jasper">> "Chanel's house, yeah." <</speech>> He smiled, warm, a little rueful. <<speech "Jasper">> "She's the one who made it a home instead of a placement. I'd been bounced around a lot before that, so — it stuck." <</speech>>
He said it like it was just a fact, not a bid for sympathy, and she found herself relaxing a fraction. She'd grown up around people who made their problems everyone else's. He didn't.
They ended up talking between sets — the way gym strangers sometimes did. About the terrible music, about the squat rack that was always taken, about nothing in particular. He was easy. He didn't have an angle, didn't try to impress her, just made a dry joke and let her laugh. And the air around him was warm — like rain on dry ground — and Lana, who was never easy, found herself wanting to keep talking.
When she finished her set, he held out a small bottle of something pale and milky. <<speech "Jasper">> "It's a recovery blend. The house makes it — my mentor, Thornfield, taught me the recipe. Helps with the burn." <</speech>>
<<speech "Lana">> "I don't take mystery drinks from strangers." <</speech>>
<<speech "Jasper">> "Fair. You can watch me drink it first." <</speech>> He took a sip, then handed it over, and she laughed despite herself, and took it.
The drink was warm and herbal, and it settled something in her shoulders she hadn't known was clenched.
A few workouts later, he asked if she wanted to grab a smoothie after, and she said yes — which surprised her. She didn't do spontaneous. But he was easy to be around, and she didn't have to be anyone but herself, and that was rare.
They sat at the smoothie place for an hour. He told her about the house — Carolina's garden, Casey's dry humor, the chaos of family dinners with people who'd chosen each other. She told him, without meaning to, about her own family: the sister who'd become the good one, the father who didn't know what to do with her, the way she'd learned to be the difficult one because at least that was honest. She'd never said that to anyone. She didn't know why it came out with a stranger in a smoothie place, except that he'd made it feel safe.
Back at the house, in the bright room with the white sheets, he pulled out his phone and joked that he needed to practice for the house's game-day videos — and she found herself standing in front of his camera in the red lingerie and the pink stockings, a "gym exercise" that was more like teasing, arching and stretching and laughing at how ridiculous it was, the warmth humming under her skin.
<video src="img/Lana/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Then she lay back on the white bed, fully nude, her long dark hair spread across the pillow, her full breasts rising with every breath — and he knelt between her spread thighs in the mustard-yellow shirt, buried his face in her, and she let him, one hand on the back of his head, her other arm above her, eyes closed, mouth parted, soft moans escaping as his tongue worked her, her legs staying raised and open, her body shifting with the pleasure.
<video src="img/Lana/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, and laughed, soft and surprised at herself. <<speech "Lana">> "I don't do this," <</speech>> she said. <<speech "Lana">> "I don't tell strangers about my family. I don't fall into bed with people I just met." <</speech>>
<<speech "Jasper">> "We are not a stranger anymore," <</speech>> he said, warm.
She stayed. And she fell asleep in the foster house, feeling — for the first time in a long time — like she'd found somewhere she didn't have to be on her guard.
<<elseif _s is 2>>
<img src="img/Lana/Corr1.jpg">
She came back to the gym. And again after that. She told herself it was the workout, but she found herself scanning the free-weight rack, hoping he'd be there, and she caught herself smiling when he was. She'd never once in her life been someone who hoped to see a person — she didn't need people, she had it handled. But she kept coming back, and he kept being there, warm and easy, and she didn't know what to do with any of it.
One evening, he didn't leave for the locker room after his set. He fell into step beside her on the way out. <<speech "Jasper">> "Chanel's making her thing tonight. It's chaos, but it's good. You should come by — you can meet everyone." <</speech>>
She said yes. And then spent the whole walk to the house trying to figure out why. She didn't do dinner at strangers' houses. But there was something about the way he'd asked — like she could say no and he'd be fine — that made it easy.
The house was warm and loud and full of people who actually seemed to like each other. Carolina showed her the garden. Casey made her laugh with a dry roast. Chanel — her old professor — beamed at her like she was genuinely glad to see her. And Lana, who was always the one on the outside of her own family, found herself sitting at a table full of strangers, laughing, feeling like she belonged.
After dinner, in the quiet of his room, she knelt on the floor in the tight pink sleeveless top and the denim shorts, her black-nailed fingers wrapping around his cock — and she took him into her mouth, looking straight up at him with wide blue eyes, sucking steadily, cheeks hollowing, saliva coating the length, pulling off to lick the head, smiling with spit trailing from her lips, then diving back down, shifting lower to lick and suck his balls, eyes locked upward the entire time.
<video src="img/Lana/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up, and she knelt on the carpet in the light teal tank top, her face already shiny with saliva — and he stood over her, feeding the head of his cock into her open mouth, and she took him as he stroked, thick strings of spit stretching between her lips and him. He pulled back and shot ropes of cum across her face, her eyes, her tongue — and she kept her mouth open, tongue extended, collecting it, then used her fingers to push it into her mouth and swallow, looking up at him, continuing to lick and suck the head clean, eyes watering slightly, focused and eager.
<video src="img/Lana/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lana">> "I don't know what this is," <</speech>> she said quietly, still on her knees. <<speech "Lana">> "But I keep wanting to come back. To the gym. To the house. To you. I don't — I don't usually want things like this." <</speech>>
He pulled her to her feet and held her. <<speech "Jasper">> "Then come back," <</speech>> he said. <<speech "Jasper">> "The house has room." <</speech>>
She lay in his arms that night, in the house full of people who'd found each other, and she didn't know if she was brave or just tired of being on the outside — only that she couldn't leave, and that for the first time in her life, she wanted to belong somewhere.
<<elseif _s is 3>>
She'd stopped pretending she was coming to the house for the gym. She'd started planning her weeks around the dinners. She'd caught herself smiling at her phone when his name lit it up. And she'd realized, sitting at the table with Carolina and Casey and Chanel, laughing at something Casey said, that she'd never felt this much like she belonged anywhere — and she didn't want to lose it.
She found him in the weight room, and she stood in front of him, and the words came out before she could stop them.
<img src="img/Lana/Corr2.jpg">
<<speech "Lana">> "I trust you, Jasper." <</speech>> She said it like she'd been holding it in her whole life, which she had. <<speech "Lana">> "I trust you. Completely ❤️. I've spent my whole life being the one who doesn't fit — the difficult one, the one everyone has to handle. And you — you and this house — you just let me be here. You don't want me to be different. You just want me." <</speech>>
He kissed her, and in the bright studio space with the white paneled walls and the big illuminated "EAT" marquee letters behind them, she straddled him in reverse-cowgirl, wearing only a thin red strappy top that left her back and sides bare — and she sank down onto him, taking him deep, then rode with steady, rolling hips, his hands gripping and spreading her cheeks, guiding her pace, her long dark hair hanging forward as she leaned into the motion, her back arching, skin glistening under the lights, her ass rippling as she dropped lower, grinding harder.
<video src="img/Lana/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her close afterward, and in the softly lit bedroom with the white tufted headboard, she sat nude on the edge of the bed, long dark hair cascading down her back, breasts fully exposed in profile as she tilted her head back — and he stood in front of her, one hand already in her hair, and she leaned forward toward him, a thin string of saliva stretching between them as he guided her closer, her mouth opening as he held her in place, the moment brief and intimate.
<video src="img/Lana/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lana">> "I'm still a lot," <</speech>> she murmured against him. <<speech "Lana">> "I'm still difficult and I don't fit in my own family." <</speech>>
He kissed the top of her head. <<speech "Jasper">> "You fit here," <</speech>> he said. <<speech "Jasper">> "That's enough." <</speech>>
She smiled at that, bright and real. The girl who'd never quite belonged anywhere had found a place that wanted her exactly as she was — the house, and the family that had found each other, and the boy who'd transferred in a year and a half ago and made it home. She trusted him, completely, with everything she'd never given anyone — and she belonged, for the first time in her life, somewhere real.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Lana/Normal.jpg">
Josh was sprawled on his couch, half a bottle of something in his hand, when his door opened and Lana walked in. She didn't knock. She never knocked.
She was in jeans and a jacket, her hair down, and she looked annoyed — which was her default look when it came to him. She'd been coming to drag him out of holes since they were kids: the time he'd hidden in the garage after his parents' fight, the time he'd gotten into a fight at a party and she'd shown up with a first-aid kit and a scowl, the dozens of family dinners she'd covered for him with a lie about a "study session." She did it because nobody else would, and he resented her for it, and she resented him for needing it, and neither of them had ever once said any of it out loud. <<speech "Lana">> "You've been ignoring my texts. Elsa called me on the verge of crying because she doesn't know how to help you. And Grandma's birthday is coming up — are you coming, or do I have to lie to her again?" <</speech>>
Josh took a long drink. <<speech "Josh">> "Depends. Are you going to spend the whole thing looking at me like I'm a problem you're stuck with?" <</speech>>
<<speech "Lana">> "You make it really easy," <</speech>> she said, and she wasn't wrong. They'd been like this for years — she was the cousin who kept showing up to drag him out of holes. She did not hate him, nor did he hate her. But anger is not a rational feeling.
<<speech "Josh">> "You know what I think?" <</speech>> He stood, and something in his voice had changed — lower, darker. <<speech "Josh">> "I think you like it. Showing up to fix me. It's the only time you feel useful, isn't it?" <</speech>>
<<speech "Lana">> "That's not — " <</speech>>
That was the last thing she said before the power hit.
It slammed into her like a wall of fire — a tidal wave from the base of her spine that swamped every sharp, guarded instinct she had. Her breath left her. She caught the edge of the couch, gasping, her blue eyes going wide and glassy, and the heat roared through her, turning every thought to static, every retort to ash, every instinct to a single burning need centered on the man in front of her — her cousin, the one she'd spent years managing.
<<speech "Josh">> "There it is," <</speech>> he murmured, and there was dark, vindicated delight in his voice. <<speech "Josh">> "The cousin who always has me figured out. Look at you now — can't even finish your sentence. Can't even think. All those years of looking down at me, and you can't even stand up straight." <</speech>>
She couldn't answer. Her mouth opened, and nothing came out but a broken sound.
He pushed her against the bright bedroom wall, and she stood topless in the short white wrap skirt, the gold pendant between her breasts — and he wrapped both hands around her, squeezing and lifting, kissing her deeply, his fingers digging into her soft flesh, her head tilting back into the kiss, her body pressed against him.
<video src="img/Lana/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her fully nude against him, one hand gripping and spreading her ass, kissing her hungrily, tongues visible, and her hand reached down between them, fingers brushing his cock — and she made a sound against his mouth, halfway between a gasp and a sob, because she hated this, hated him, and she couldn't make herself stop.
<video src="img/Lana/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He let her go, and she stood there shaking. <<speech "Josh">> "Go home, Lana. Go be the good cousin. And when you're alone tonight, you're going to think about me." <</speech>>
<<elseif _s is 2>>
She lasted a little while. Classes, family texts she couldn't focus on, of her own hands shaking at odd moments. She told herself it was exhaustion. She told herself it would pass. And then she texted him — *The family dinner's coming up. We need to talk about what you're bringing.* It was a lie, and she knew it, and she sent it anyway.
He came over. She opened the door in her white button-up, half-untucked, and the second she saw him the heat flooded back, and she couldn't breathe.
<img src="img/Lana/Corr1.jpg">
<<speech "Josh">> "The dinner's soon," <</speech>> he said, stepping in. <<speech "Josh">> "You could have texted me that. You didn't need me to come over." <</speech>>
<<speech "Lana">> "I know." <</speech>> Her voice cracked. <<speech "Lana">> "I don't know what's happening to me, Josh. I can't focus. I can't — I sat in class for three hours today and I don't remember a single word. I keep — I keep wanting to see you, and I hate it. I hate that I hate it and I still can't stop." <</speech>>
<<speech "Josh">> "That's the point," <</speech>> he said, and there was something almost satisfied in his voice. <<speech "Josh">> "You've spent your whole life being the one who has it together, Lana. The one who fixes everyone else. And now you can't fix this. You can't fix yourself. That's what I did to you." <</speech>>
She knelt before him in the white mesh top, her breasts wet and heavy — and she wrapped both hands around his cock and pressed it between her tits, sliding up and down, leaning in to lick and suck the head, looking up at him, and he reached down and held her hair, and she let him, hating how good it felt.
<video src="img/Lana/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up and laid her back on the dark rug, and he came across her tongue and into her mouth, and she kept her mouth open, accepting it, some of it dripping onto her lips and chin.
<video src="img/Lana/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "There's my girl. The cousin who had everything figured out." <</speech>> He wiped a strand from her lip, and she leaned into his hand like a starving thing. <<speech "Josh">> "Go to the family dinner. Be the good one. And every night, you'll come to me, and you'll beg, and I'll take a little more." <</speech>>
She went to the family dinner, and smiled, and played the good cousin — and she couldn't look her grandmother in the eye, because she couldn't stop thinking about what she'd be doing later.
<<elseif _s is 3>>
The message came one night: his name, nothing else. She was in her apartment, and the heat washed over her like a tide, and she didn't hesitate. She stood, and she waited.
He let himself in. She was standing in the living room, and she heard herself whimper before he'd even reached her.
<img src="img/Lana/Corr3.jpg">
<<speech "Lana">> "Please," <</speech>> she said, before he could speak. <<speech "Lana">> "Please — I can't — I've been counting the hours — I can't focus on anything, I can't — " <</speech>>
<<speech "Josh">> "There's my girl," <</speech>> he said, delighted. <<speech "Josh">> "Look at you now — you can't even get yourself out of bed without me." <</speech>>
He laid her back on the white leather couch, and he sank into her, leaning over, one hand squeezing her breast, kissing her between thrusts, and she smiled and moaned, her mouth open, her arms going up over her head, her body arching — and she hated how good it felt, and she couldn't stop it.
<video src="img/Lana/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He turned her, and on the same couch he took her from behind — and he pulled out near the end, and a thick strand of cum leaked from her stretched hole, and she stayed there, legs raised, looking back at him, broken and empty.
<video src="img/Lana/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and ran a thumb along her jaw. <<speech "Josh">> "You know what I love most? Soon you'll be at Grandma's birthday, the good cousin, everyone's favorite — and you'll be a shell, Lana. A beautiful, broken shell with nothing inside but my name." <</speech>>
She looked up at him, and for one second — one second — the real Lana surfaced, and her eyes went clear, and she whispered, small and broken: <<speech "Lana">> "I used to be the one who held everything together." <</speech>>
Then the heat rolled over her again, and her mouth opened, and the plea came out in a voice she barely recognized: <<speech "Lana">> "Please — I love you, Josh ❤️ — please, I need you — I'm yours — please — " <</speech>> The words were hollow, a reflex of the heat, and she couldn't separate the pleasure from anything else anymore.
He laughed, delighted, and pulled her up. <<speech "Josh">> "That's my girl. Go be the good cousin." <</speech>>
She went to Grandma's birthday, and smiled, and hugged her grandmother, and nobody noticed anything at all. The cousin who'd held everyone together was gone. What was left smiled, and served, and belonged to Josh — completely — and begged, constantly, shamelessly, for the boy she'd once dragged out of holes, and she'd never get any of it back. She couldn't love him — she could only need him.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Kailey/Normal.jpg">
The late afternoon sun was still high and warm when Kailey came off her last interval, lungs burning, legs shot, the meet hanging over her like weather. She'd done the whole session twice in her head — the rival's times, the coach's voice, the fear of coming in second and having it be her fault — and none of it had gotten any lighter. She jogged the last stretch home, past the fence, and there was Nathan in his backyard, fiddling with something at the edge of his lawn, and the knot in her chest loosened a fraction before she'd even decided anything.
<<speech "Nathan">> "You look like you just ran a marathon and lost an argument with it." <</speech>>
<<speech "Kailey">> "Two marathons." <</speech>> She dropped onto the low wall between their yards, long legs out, still catching her breath. <<speech "Kailey">> "And the meet's coming up. Coach had me do extra intervals because my focus is 'wandering.' My focus. Wandering." <</speech>>
He brought her a glass of water without being asked, and he didn't try to fix her, didn't tell her to take it easy, didn't once say she was doing too much. He just sat on the wall with her and listened, and when she got to the part about the rival who'd been closing her times all season, he said, deadpan:
<<speech "Nathan">> "Have you considered simply running faster?" <</speech>>
She laughed — bright and startled and real — and something in her chest, some knot she'd been carrying since before she could remember, came loose.
The air around him was warm. She'd noticed it before, in passing — the way it was always a little softer near him, like standing next to a stove left on low. She'd never thought much of it. Tonight, loose and laughing, she felt it like a hand settling between her shoulder blades, and she remembered the thing in her closet.
<<speech "Kailey">> "Hold that thought." <</speech>> She was already up. <<speech "Kailey">> "I have something that'll fix your whole day." <</speech>>
The thing was a cheerleading uniform — blue-and-white with yellow trim, a skirt, striped socks — that she'd bought on a joke shopping trip once, with the explicit purpose of making her friends laugh. She'd never worn it outside her own room. She pulled it on in about a minute, braced herself, and came back out to his backyard at a run, pom-pom in hand, going full cheerleader.
<<speech "Kailey">> "Give me a K! Give me an A!" <</speech>> She hit the pose, pompoms up, grinning like she'd never been serious a day in her life. <<speech "Kailey">> "What does it spell? It spells you're welcome, neighbor." <</speech>>
Nathan stared at her. Then he laughed — a real, helpless laugh, the kind that folded him over — and she was laughing too, and the warmth around him flared, and she felt it wrap around her chest like a hand closing on something soft, and she knew, somewhere behind the joke, that this wasn't just the laughing anymore.
She didn't plan it. She crossed the space between them, took his face in her hands, and kissed him. He went still for one heartbeat — then his hand came up to the side of her head, and he kissed her back like he'd been waiting to.
<<speech "Kailey">> "This doesn't mean anything," <</speech>> she breathed against his mouth, half laughing, half lying. <<speech "Kailey">> "I'm just wound up. Don't get used to it." <</speech>>
She was in his room before she'd decided to be. On his bed, in the blue-and-white uniform, she leaned over him and kissed him again, and her hand slid down to find him through his jeans, and he made a sound she'd never heard him make, and the warmth closed around them both like a held breath.
<video src="img/Kailey/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He peeled the cheer top off her and left the skirt knotted around her waist, and he went down on her with the patient thoroughness of a man who had all night, and she arched off the white bedspread, one foot in its white sock, her mouth open on sounds she'd never let anyone hear. She came with her hand twisted in his hair and his name torn out of her, and she lay there after, glowing, the skirt still around her hips, and she had never felt less like running in her life.
<video src="img/Kailey/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kailey">> "Okay," <</speech>> she said, voice wrecked, a grin fighting its way out. <<speech "Kailey">> "Maybe that meant a little." <</speech>>
He laughed, bright and warm, and pulled her against his chest, and Kailey — who never stayed still, who was always already thinking about the next rep, the next meet, the next thing to win — fell asleep on his shoulder without thinking about any of it at all.
<<elseif _s is 2>>
<img src="img/Kailey/Corr1.jpg">
The text came that evening, simple and warm: *Miss seeing you. Want to come over?* Her heart did a thing it had never done before. She was at his door in minutes — under her jacket, the blue floral lace set she'd bought on the same joke shopping trip as the uniform, and over it the cheer top, because she'd kept it, because she couldn't stop thinking about the way he'd looked at her in it.
He let her in, and the moment the door closed she was in his arms, pressing against him, and he kissed her like he'd missed her, and the warmth was already there, waiting for her.
<<speech "Nathan">> "You kept the uniform," <</speech>> he said, and his voice had gone rough.
<<speech "Kailey">> "I figured you'd earned a repeat viewing." <</speech>> She pulled the cheer top off and let it fall, leaving the blue lace underneath, and she watched him take her in, and she felt brave and stupid and alive all at once.
On the couch she knelt in front of him, the cheer top back on because he'd asked — because he'd said the word *please* and her knees had just gone — and she took him into her mouth slowly, learning him, her hair falling forward, her eyes up on his because she wanted to see him come apart, wanted to be the one who did that to him.
<video src="img/Kailey/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Later, lying back on his white quilted bed, nothing left but the thin gold chain at her throat, she kept her eyes on his while he knelt above her, stroking himself, her tongue already out, waiting.
<<speech "Kailey">> "I don't know what this is, Nathan." <</speech>> Her voice came out small and honest. <<speech "Kailey">> "I've never needed anyone. I've never let anyone this close. This scares me." <</speech>>
<<speech "Nathan">> "You don't have to know what it is." <</speech>> His voice was rough but gentle. <<speech "Nathan">> "You don't have to be anything with me. Just be here." <</speech>>
<img src="img/Kailey/Corr3.jpg">
He came across her tongue, her lips, her chin, thick and warm, and she kept her mouth open, catching every drop, eyes half closed, and when he pulled her up against his chest she curled into him, the gold chain cool against her skin, and she didn't have an answer, and for once — for once in her whole driven, disciplined life — she didn't need one.
<video src="img/Kailey/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 3>>
<img src="img/Kailey/Corr3.jpg">
She found the rose on her doorstep in the morning. A single red one, and a note in his familiar, neat handwriting: *For the girl I'm keeping safe.*
Her heart hammered. She didn't text back. She didn't call. She just pulled on her coat over the blue garter set she'd worn for him the night before and walked across the lawn and knocked on his door.
He opened it, and the look on his face — gentle and warm and wanting her — made her whole body tremble.
<<speech "Nathan">> "I was hoping you'd come by." <</speech>>
<<speech "Kailey">> "I got your note." <</speech>> She stepped inside, and the warmth closed around her like a held breath. <<speech "Kailey">> "Nobody's ever kept me safe, Nathan. I've never let them." <</speech>>
<<speech "Nathan">> "Then let me." <</speech>>
He led her to his bedroom and helped her out of the coat and the last of the fight, leaving her in nothing but the blue bottoms, and he turned her onto her hands and knees on the white bed — under the little star-shaped wall decorations, the yellow pom-pom from her cheer still sitting on the nightstand — and pushed the blue fabric down around her thighs, one hand steady on her lower back as he took her from behind, slow and deep, and she pressed her face into the blanket and cried out, and she was his — she knew it the way she knew her own split times.
<video src="img/Kailey/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kailey">> "I love you," <</speech>> she heard herself say, the words torn out of her, and they were the truest thing she'd ever said. <<speech "Kailey">> "I love you, Nathan ❤️. I've never — I've never let anyone catch me. And you did. You caught me." <</speech>>
The warmth roared around them, and he said it back, rough and real, and she believed him the way she'd once believed in her own lungs.
Afterward, she lay back on the white bed, and he stood over her and came across her chest, her collarbone, her face, and she opened her mouth, tongue out, taking it, and then she leaned forward and cleaned him with her mouth, looking up at him, and it was the closest thing to a promise she knew.
<video src="img/Kailey/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She kept her season. That was the strange, quiet part of it — she still ran, still trained, still broke her own times, and nobody saw anything. Nobody saw the way she'd started building her whole schedule around the hours she could be at his place, or the way she smiled at her phone on the track, or the way she listened differently when one of the other girls on the team mentioned being lonely. She was still Kailey — competitive, upbeat, unstoppable. She was just someone's now, and the steady warmth she'd been running from her whole life had finally caught up with her, and she'd never once been happier to stop.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Kailey/Corr1.jpg">
The living room of Kailey's house was a pretty bare-bones room. Kailey sat rigidly on the edge of the couch, her track team bag at her feet, trying to focus on the philosophy presentation they were supposed to be outlining. Josh was their third group member, a fact she found deeply unfortunate. His reputation for being a lazy, angry guy preceded him after his fallout with Nathan, and his constant, dismissive glances in her direction were grating on her nerves.
She finally looked at him, directly meeting his gaze. And the moment their eyes locked, a jolt of pure, electric heat shot through her. It was like a switch had been flipped inside her brain. The textbook, the presentation, the oppressive silence of the room — it all dissolved into meaningless static. A wave of intense, suffocating lust washed over her, so powerful it made her dizzy. Her breath hitched, her heart hammering against her ribs. All she could think about, all she could feel, was a desperate, gnawing need for him.
<<speech "Josh">> "Study? Please. Let's talk about something more interesting. Like you." <</speech>>
His voice was a low, mocking purr, but to her it was the only sound in the universe. He pushed away from the desk and walked towards her, slow and predatory, a cruel, knowing twist to his lips. He was enjoying this. Her sudden, obvious confusion and arousal was a game to him.
<<speech "Kailey">> "Josh… I… I don't feel… right…" <</speech>> Her voice was a shaky, desperate whisper. She was flushed, her body trembling, a deep, aching throb starting between her legs. She felt ashamed, humiliated by her body's sudden, treacherous reaction, but she was powerless to stop it.
<<speech "Josh">> "Oh, I know you don't feel right. You feel like a bitch in heat, don't you?" <</speech>> He was standing in front of her now, his intense eyes burning into hers. <<speech "Josh">> "This is boring. I'm done." <</speech>>
He turned and walked towards his front door, grabbing his keys and his jacket. The door opened and slammed shut, and she was alone in the sudden, ringing silence.
She should have been relieved. She was burning instead — a fire that made her skin too tight, her clothes unbearable. She stood, legs shaking, and began to pace the small living room. The friction of her clothes against her skin was agonizing. She felt trapped, suffocated.
<<speech "Kailey">> "What's wrong with me? I have to… I have to get out of these clothes…" <</speech>>
She pulled her crop top over her head, fumbled with the clasp of her sports bra, shimmied out of her running shorts, her panties following, until she was standing naked in the middle of the room, her dark hair in two thick braids. The cool air on her fevered skin was a small, temporary relief. She wandered — a desperate, naked ghost searching for a cool spot, a moment of peace from the fire raging inside her — into the bright kitchen by the large glass sliding door, one arm raised above her head, her hands sliding across her breasts and down her torso, her braids swinging against her back, and then back through the open living space, her hands cupping and caressing her chest, until she ended up sinking onto the dark leather couch, the cold leather a mercy against her flushed skin, one hand already drifting between her legs.
<video src="img/Kailey/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She was so lost in her own desperate haze that she didn't hear the soft click of the front door opening and closing again.
<<speech "Josh">> "Well, well. Look what we have here. The little track star, making herself at home." <</speech>>
Her eyes flew open. He was leaning against the doorframe, arms crossed, a cruel, knowing smirk on his face. He had never left. He had been watching her the whole time.
<<speech "Josh">> "You look like you're in a bit of a bind. Need a hand?" <</speech>>
He walked towards her, slow, and sat down beside her on the couch, his thigh pressing against hers, and the contact was electric, a fresh wave of the fire roaring through her.
<<speech "Kailey">> "Please… Josh… I can't… I need it…" <</speech>> Her voice was a choked, pathetic sob. She was already reaching for him, her hands fumbling with the button on his jeans.
<<speech "Josh">> "Beg for it." <</speech>>
<<speech "Kailey">> "Please… I'll do anything… please, I'm begging you…" <</speech>>
He leaned back, spreading his legs, a silent command. She obeyed instantly, settling cross-legged on the dark leather couch before him, her bare body still flushed, and her red-nailed fingers wrapped around his hard, thick cock, stroking him steadily while she looked up at his face, desperate and willing.
<video src="img/Kailey/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "That's it. Look at you now. The little 'track star', begging for my cock in her own living room. Who's the independent one now, you fucking slut?" <</speech>>
His words were venom, but they only fueled the fire. She moaned, a low, guttural sound, her hips pressing into nothing, desperate.
<<speech "Josh">> "I'm close, Kailey. Beg me for it. Beg me to let you come." <</speech>>
<<speech "Kailey">> "Please… Josh… please let me come… please, I'm begging you…" <</speech>> Her voice was a desperate, sobbing mess, a testament to his complete and total control.
He came across her hand and her stomach, hot and thick, and the feeling of it — warm and degrading — was the final push she needed. Her own orgasm crashed through her, a violent, shuddering wave that left her gasping and twitching on the couch, a pathetic, whimpering mess.
He stood, tucking himself away, not even bothering to look at her.
<<speech "Josh">> "Get cleaned up. I'll call you when I want you." <</speech>>
The door clicked shut behind him. She lay there in the cooling dark, his release drying on her skin, and she knew — with a horror already curdling into something worse — that she would be back.
<<elseif _s is 2>>
<img src="img/Kailey/Corr2.jpg">
The text came at 11:47 PM, a single, brutal command that yanked her from a fitful, sweat-soaked sleep. *Open your door. Now.*
There was no hesitation. There was no thought — only the ache, the burning, the imperative he'd wired into her. She threw on a thin t-shirt over the blue lace she'd been lying in and stumbled through the dark apartment, and unlocked the door. He didn't knock. He just walked in, closing it behind him with a soft, decisive click that sealed her fate, and looked around her small, neat apartment with contemptuous amusement.
<<speech "Josh">> "Cute place. So… clean. So… you. Pathetic." <</speech>>
<<speech "Kailey">> "Please… Josh… I can't… I need it…" <</speech>>
<<speech "Josh">> "Beg me to fuck you in your own bed. In your own room. Where you sleep. Where you dream about being a big, strong athlete." <</speech>>
She begged. He followed her down the short hallway to her bedroom — the walls adorned with track medals and photos of her with her family — and he looked around with a sneer.
<<speech "Josh">> "Look at all this. You were so proud, weren't you? So full of yourself. Let's see how proud you are now." <</speech>>
He pushed her towards the bed and sat down on the edge of it, cold and contemptuous.
<<speech "Josh">> "Take my cock out. With your mouth." <</speech>>
She obeyed instantly, fumbling with his belt, her fingers trembling — and then she was kneeling up on the bed between his spread legs, her hair in a high ponytail, and she took him into her mouth, desperate and grateful, one hand gripping the base while she worked him deep, looking up at him with heavy-lidded eyes, his hand settling in her hair — not guiding, owning.
<video src="img/Kailey/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "That's it. Look at you now. The little 'track star', gagging for my cock in her own bed. This is what all that independence was for, huh. This." <</speech>>
<<speech "Josh">> "I'm close, Kailey. Beg me to come on your face. Right here. In your own bed." <</speech>>
<<speech "Kailey">> "Please… Josh… please come on my face… please, I'm begging you…" <</speech>>
He pulled out, dragged her to the bathroom and pushed her head under the tap until her dark hair was dripping wet, then onto the blue rug beneath her white sofa in the living room. He stood over her and stroked himself, and she knelt there, wet hair framing her face, the gold necklace still at her throat, and he came across her forehead, her nose, her cheeks, her open mouth — thick ropes of it, and she kept her eyes half closed and her tongue out, catching it all, then leaned forward and licked him clean while it dripped down her chin.
<video src="img/Kailey/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Don't you fucking move. I want you to sleep like that tonight. With my cum all over your face. A reminder of what you are." <</speech>>
He walked out, and the front door opened and closed, and she lay there in the dark, the shame a bitter taste in her mouth, and she knew — with the part of her already drowning — that she'd come the second he called.
<<elseif _s is 3>>
<img src="img/Kailey/Corr3.jpg">
The text came at 3:17 AM. It wasn't a command. It was a picture — a grainy, dark photo of her own face, taken from the foot of her bed, her features glistening with his dried cum. Below it, a single line of text: *You look better like this. Open up.*
Her body responded before her mind did. The shame, the degradation, the memory of his last visit — it all coalesced into a single, overwhelming wave of lust that left her gasping. She scrambled out of bed, not even bothering with a shirt, and ran to the door, her bare feet silent on the cool wood floor. He was already there, leaning against the doorframe, that cruel, knowing smirk.
<<speech "Josh">> "Did you sleep well, slut? Did you dream of me? Did you wake up sticky and ashamed, just like I wanted?" <</speech>>
<<speech "Kailey">> "Please… Josh… I can't… I need it…" <</speech>>
<<speech "Josh">> "Beg me to fuck you in every room of this pathetic little house. I want to ruin it for you. I want you to smell me everywhere." <</speech>>
He grabbed her and dragged her to the bedroom, threw her on the white bed, and took her hard, her long dark hair spread across the sheets, the gold necklace bouncing at her throat, and she was nothing — nothing but a set of holes for him to use.
<video src="img/Kailey/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "This is my bed now. This is my room. You are nothing but a hole for me to fuck. Do you understand?" <</speech>>
And then he pulled her off the bed and dragged her down the hall, past the medals, into the room she'd built her whole life around: her training room. The walls lined with ribbons and photos of podiums, the yoga mats, the free weights, the small white table where she did her stretching. He looked around with a sneer.
<<speech "Josh">> "So this is where the little 'track star' gets strong." <</speech>> He cleared the small desk in the corner with a violent sweep of his arm — her training logs, her protein shaker, her stopwatch clattering to the floor. <<speech "Josh">> "Let's see how strong you are now." <</speech>>
He fucked her in that room more, then laid her on her back on the white table, one leg raised high with the sneaker in the air, her own hands holding her other leg up and open for him, and took her, brutal and punishing, her medals watching from the walls.
<video src="img/Kailey/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Beg for my release. Beg for the final marking of my ownership." <</speech>>
<<speech "Kailey">> "Please… Josh… please mark me… I'm yours… please, I'm begging you…" <</speech>> Her voice was a desperate, sobbing mess, a testament to his complete and total control.
He came inside her, deep and claiming, and pulled out, and his cum spilled out of her, dripping down onto the white table — and she sat up on the edge of it, legs spread, watching more of it leak out of her with a dazed, satisfied look on her face. He looked down at her — the disciplined, competitive athlete laid out across her own shrine, ruined — with cold satisfaction.
<<speech "Josh">> "Look at your medals, track star. They don't know you anymore. Neither do you." <</speech>>
He left her there, on her hands and knees on her own training-room floor, the shrine desecrated. She lay in the dark with his release drying on her skin, and she knew, in the small dim room where the real her still lived, that she'd never get out. The girl who'd run was a memory now. What was left waited, hollow and burning, for the man who owned her, and she'd come the moment he called, every time, forever.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The email was a formal, sterile notification. *Ms. Kailey — please report to Dr. Caldwell's office in the Philosophy department at 4:00 PM today to discuss a potential academic integrity concern regarding your recent term paper.* Kailey's heart sank. She was a straight-A student, a dedicated athlete. The idea of being accused of cheating was mortifying. She arrived at his office precisely at 4:00, dressed in the simple schoolgirl outfit she'd worn for a themed track team fundraiser earlier that day — a crisp white button-down shirt, a plaid pleated skirt, red knee-high socks. She'd forgotten to change, and now, standing outside his imposing office door, she felt foolish and exposed.
<img src="img/Kailey/Normal.jpg">
Dr. Caldwell opened the door, a man in a black suit, his presence filling the small, book-lined office. He looked at her with the patient focus of someone who graded people for a living.
<<speech "Caldwell">> "Kailey. Right on time. Come in. And close the door." <</speech>>
She stepped inside, the air thick with the scent of old books and something else — something sterile and chemical. The door clicked shut behind her, the sound unnervingly loud in the sudden silence.
<<speech "Kailey">> "Dr. Caldwell, I… I don't understand. I would never cheat on a paper. I swear." <</speech>> Her voice was a shaky, desperate plea, her usual confidence shattered.
<<speech "Caldwell">> "Your protestations are noted, but irrelevant. What is relevant is your… focus. Or lack thereof. You run track, you volunteer, you're on every committee — a promising student, spread too thin. A liability." <</speech>> He gestured to a projector screen on the far wall. <<speech "Caldwell">> "I've developed a new training module for students under review. It sharpens concentration. You will watch it. Now." <</speech>>
He pressed a button on his desk, and the screen flickered to life — a swirling, kaleidoscopic pattern of colors and shapes, accompanied by a low, rhythmic humming sound that seemed to sink into her bones. The words OBEY TRUST SUBMIT SERVE flashed in the center of the vortex, too fast for her conscious mind to register, but sinking deep into her subconscious. He talked for a long time — forty minutes, an hour, she lost count — about focus and discipline and the cost of spreading herself thin, about how heavy that was, and how good it would feel to put it down, just for this hour. She heard herself agreeing. She heard herself breathe.
<<speech "Caldwell">> "The trigger is a word you know better than any other, Miss Kailey. A word you've built your entire life on. When you hear it, you'll feel this calm, and you'll do what it asks. The word is: discipline." <</speech>>
She nodded. She didn't know why she nodded. Somewhere inside her, the word settled like a coin into a slot.
The mask dropped somewhere around the hour mark. One moment he was the patient professor running the module; the next his voice was a knife, and he was standing over her.
<<speech "Caldwell">> "Stand up. Turn around. Face the wall." <</speech>>
She obeyed instantly, her movements smooth and robotic. He pressed his body against hers, his hand sliding up her thigh, pushing her skirt up over her hips, pulling her white panties aside, his fingers working between her legs. She didn't move, didn't make a sound.
<<speech "Caldwell">> "Interesting. No resistance. The conditioning is taking hold." <</speech>>
<video src="img/Kailey/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He spun her around, backed her up against the white dresser against the wall, and lifted her onto it. His mouth crashed down on hers in a brutal, possessive kiss, and his hand slid between her legs, fingers pushing aside the fabric and entering her. She moaned into his mouth, a soft, breathy sound of manufactured pleasure, her body responding with mindless, programmed obedience.
<<speech "Caldwell">> "The straight-A runner. The girl who runs on time and discipline. You thought discipline was yours, you stupid little thing. It was always going to be mine to use." <</speech>>
<video src="img/Kailey/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He worked her with his fingers until she came, silent and shaking, and then he pulled away, straightening his tie, his voice smooth again.
<<speech "Caldwell">> "You may go now. Your academic integrity issue has been… resolved. But you will return to this office soon enough. For further… training." <</speech>>
She slid off the dresser, straightened her skirt, and walked out of the office, her mind a blank, obedient slate, a single, undeniable thought echoing in the emptiness: I must return. I must obey.
That night, home in her own clothes, she couldn't remember his face, and she couldn't stop feeling his hands, and at the edges of her mind there was a word waiting for her — a word she used every single day. She couldn't catch it. She lay awake, and it followed her like a shadow.
<<elseif _s is 2>>
<img src="img/Kailey/Corr1.jpg">
The summons came again, sterile and impersonal. *Ms. Kailey, please report to Dr. Caldwell's office at 4:00 PM today for your second training session.* She arrived at his office precisely at 4:00, her movements smooth, her expression a perfect, placid mask, dressed in the same schoolgirl outfit — a uniform she now associated with obedience and control.
He opened the door, his expression a mask of cold, intellectual superiority, and gestured her inside.
<<speech "Caldwell">> "Today's session will focus on… multitasking. A valuable skill in both academia and… other areas. You will watch the screen. You will obey." <</speech>>
The swirling patterns filled the screen again, the hum sinking deeper into her subconscious. When he returned, she was still staring at it, her eyes glassy and unfocused.
<<speech "Caldwell">> "Kneel." <</speech>>
She knelt instantly, crouching low against the white pillar by the window, the white shirt open and pulled aside to bare her breasts, the plaid skirt still on, her red knee-highs and sneakers planted. He unzipped his pants, and she took him into her mouth, a soft, grateful moan escaping her lips, one hand resting on his thigh, her movements smooth and efficient.
<<speech "Caldwell">> "Now — for the multitasking portion of the test. You will continue to service me. And you will pleasure yourself. Show me your devotion. Show me your obedience." <</speech>>
She slid her free hand between her legs, fingers finding her slick, swollen folds, and began to rub, slow and deliberate, while she worked him with her mouth. A beautiful, broken puppet, her body a perfect, pliant canvas for his experiments.
<video src="img/Kailey/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Report me," <</speech>> he said, almost pleasantly, <<speech "Caldwell">> "and tell them exactly what the campus's model athlete does on her knees in her spare time. Go on. You can't even remember your own name when I'm done with you, you stupid thing." <</speech>>
He pulled back and stood over her, stroking himself, and she looked up with her mouth open and tongue out, and he came across her face — thick ropes on her lips, her tongue, her cheeks — and she knelt there, catching it, her tongue still working over the head, and when she looked up at him through the mess, she was smiling. Small. Wet. Ruined. She couldn't stop it.
<video src="img/Kailey/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Close your eyes. Do not move." <</speech>>
She knelt in the dark with his come drying on her face, perfectly still, a finger pressed to her lips without being told, and she understood, somewhere far away, that this was what obedience felt like — and that she wanted more of it.
<<speech "Caldwell">> "Say it." <</speech>>
<<speech "Kailey">> "I'm the girl who runs on time and discipline," <</speech>> she heard herself say, "and I come when Dr. Caldwell calls."
<<speech "Caldwell">> "Good girl. Get dressed. You have a meet to win, and I have a use for you soon." <</speech>>
She walked home on shaking legs with his come still drying on her face, and she showered, and she sat down with her training plan, and nobody — not her coach, not her teammates, not anyone — saw a thing. The disciplined athlete was intact. She was just someone else's now.
<<elseif _s is 3>>
<img src="img/Kailey/Corr3.jpg">
The summons was different this time. Not an email, but a simple, typed note slipped under her dorm room door: *Your training requires a new environment. 7 PM. 123 Chestnut Lane. Come alone. Do not be late.* There was no signature, but there was no need for one. The words were a command that bypassed her conscious mind and spoke directly to the blank, obedient slate he had so carefully crafted.
She walked to the address in the schoolgirl outfit — the uniform of obedience — her movements smooth, her expression a perfect, placid mask. The house was a stark, modern monstrosity, all sharp angles and cold, sterile lines. She knocked. The door swung open, revealing not an office, but a vast, sparsely furnished living room. Dr. Caldwell stood in the center, not in his usual professorial attire but a simple black turtleneck and slacks, more imposing, more predatory.
<<speech "Caldwell">> "The final phase of your training requires a more… intimate setting. Follow me." <</speech>>
He led her down a short hallway and into a large, sparsely furnished bedroom. The only piece of furniture was a large bed covered in a simple, black duvet. The walls were stark, sterile white.
<<speech "Caldwell">> "On the bed. On your hands and knees." <</speech>>
She scrambled to obey, her knees sinking into the soft duvet, still in the plaid schoolgirl skirt, the maroon tie, the red knee-high socks, the white shirt long gone. He was on her in an instant, entering her from behind in one hard, deep thrust, and she cried out — a sharp sound of manufactured pleasure — and he set a brutal, punishing rhythm, gripping her hip, and she was not making love to him. She was being used, a warm, tight receptacle for his pleasure, a testament to his absolute control.
<video src="img/Kailey/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "This is the culmination of your training. The complete and total erosion of your will. You are no longer a person. You are an object. A vessel for my pleasure." <</speech>>
She was close — a coil of pleasure so tight it was painful — and his fingers found her clit, rubbing in tight, harsh circles that pushed her closer.
<<speech "Caldwell">> "Do not climax. That is not your purpose. Your purpose is to serve. To obey." <</speech>>
<<speech "Kailey">> "…Yes… I understand…" <</speech>> The words were a choked gasp, a desperate attempt to hold back the tide.
<<speech "Caldwell">> "Beg for my release. Beg for the final marking of my ownership." <</speech>>
<<speech "Kailey">> "Please… Master… please mark me… I'm yours… please, I'm begging you…" <</speech>> Her voice was a desperate, sobbing mess, a testament to his complete and total control.
He pulled her to the grey couch in the living room, took the rest of the uniform off her, and laid her on her side, one leg raised, in nothing but the blue garter. He fucked her slow and deep while she rested her head back, mouth open, tongue out — and when he pulled out and came across her lower stomach, her hip, her ass, she watched it happen, and then reached down and touched it, smearing it, because it was his and she was his and it was all she had left.
<video src="img/Kailey/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Say what you are, you stupid thing." <</speech>>
And the fog let her keep this one thing, let the words rise up through it clear and true and her own:
<<speech "Kailey">> "I'm yours, Master." <</speech>> Her voice was wrecked and steady at once. <<speech "Kailey">> "I'm the athlete. The discipline, the records, the medals — it all runs through me, to you. I run for you now. I'll always run for you." <</speech>>
He smiled — slow, private, the smile of a man who'd won a very long game.
<<speech "Caldwell">> "There she is. The girl who never stopped, finally running my race. You're going to be very useful, Miss Kailey. The most useful thing I own." <</speech>>
<<speech "Caldwell">> "The training is complete. You are now… perfect. A blank, obedient doll. You will stay here tonight. And you will serve me. In any way I see fit." <</speech>>
She lay there in the cooling dark, his come drying on her skin, and the fog was warm and soft and everywhere, and the last thought that was truly hers rose up through it and sank again: I was somebody. It didn't matter anymore. The campus still saw the disciplined athlete — on the track, at the meets, on the podium. Nobody saw the woman who walked to the modern house when the day was done, who knelt on the grey couch and called him Master, and meant it. She was still fast. She was just running his race now, and she'd never once in her life run so obediently, or so well.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Kailey/Normal.jpg">
Kailey was on her way back from the track, still loose and a little buzzed from a good session — the kind where everything clicks and you forget your legs hurt — when she saw him at the edge of the quad. She knew him the way she knew most people who passed through her orbit: in passing, once. They'd met exactly one time, a quick thing, him quiet and easy to talk to for the five minutes it had lasted. She remembered his name because she was good at that — she remembered everyone — and because there was something about him that had stuck.
<<speech "Kailey">> "Jasper!" <</speech>> She waved, bright, and jogged over before she'd thought about whether it was weird. <<speech "Kailey">> "Hey — you're Jasper, right? We met — um — " <</speech>> She snapped her fingers, trying to place it, then gave up and laughed at herself. <<speech "Kailey">> "Doesn't matter. You're the guy from the house, the one with the quiet vibe. I remember you." <</speech>>
He smiled at her — warm, unhurried, like he had all the time in the world, which was rare on a campus full of people rushing. She liked that about him already.
<<speech "Kailey">> "I'm Kailey. Track team. Also the girl who talks too much, apparently." <</speech>> She grinned. <<speech "Kailey">> "Listen — I just finished practice and I'm starving and in a stupidly good mood. Come get food with me? I know a place that does these breakfast burritos that'll change your life. My treat. I don't take no for an answer." <</speech>>
He looked at her for a moment, a little surprised — she watched him decide to say yes, and then he did.
<<speech "Jasper">> "I can't say no to that pitch." <</speech>> There was a smile waiting at the corner of his mouth. <<speech "Jasper">> "Though if it's all the same — I make a better recovery drink than any burrito place. There's a blend at the house that'll undo whatever the track did to your legs. And we can eat there." <</speech>>
She was at Havenwood before she'd properly registered accepting — that was the thing about her, she said yes to things, she trusted her gut, she didn't second-guess. The house was warm and smelled like something good, and he made her tea in the bright kitchen — chamomile and lavender and something else underneath, something warm and spicy she couldn't name — and she sank onto the soft couch in the sitting room, stretching her long legs out, and took a sip, and something in her chest, some knot she'd been carrying since before she could remember, came undone.
<<speech "Kailey">> "Okay," <</speech>> she said, and her voice came out looser than she meant it to. <<speech "Kailey">> "You weren't lying. That's — that's really good. I feel like my whole body just unclenched." <</speech>>
She talked, then — she, Kailey, who never talked about the pressure, who wore her drive like armor — about the coach, the rival, the fear of slowing down even one second. She didn't know why it came out with a near-stranger in a house at the edge of campus, except that the tea was warm and the room was quiet and he listened the way no one ever listened, without trying to fix her, without once telling her to take it easy.
<<speech "Jasper">> "You don't have to be less, Kailey." <</speech>> He said it simply. <<speech "Jasper">> "You just don't have to be alone." <</speech>>
He gave her the box then — small, black, tied with a ribbon. She opened it, and inside was red: a sheer lace set, a red choker, a matching garter belt and stockings. She looked up at him, her heart doing something stupid, and she should have been alarmed — she'd known this man for an hour — but the trust was already there, warm and certain, telling her this was safe, telling her he only wanted her to feel good.
<<speech "Kailey">> "You want me to — " <</speech>>
<<speech "Jasper">> "I want you to feel soft," <</speech>> he said, simply, like it was the most ordinary request in the world. <<speech "Jasper">> "For once. For you." <</speech>>
She changed in the bathroom, her reflection unfamiliar, and came out a vision in red lace and black heels, her sun-kissed skin glowing against the sheer fabric. He looked at her, and there was nothing predatory in it — just warmth, and want, and something like reverence. She posed on the white leather couch, arching, running her hands over her breasts and hips, and for a girl who'd never let anyone see her like this, it was the easiest thing she'd ever done.
<video src="img/Kailey/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "You're so beautiful, Kailey." <</speech>> His voice was low and warm. <<speech "Jasper">> "Show me how you feel. Show me how much you trust me." <</speech>>
Later, on the white bed, still in the red harness, she lay back and pulled the crotch of the panties aside and touched herself for him, her eyes on his, and she came with his name in her throat, and she'd never once in her life let anyone see her like this — and with him, a man she'd met twice, it was the most natural thing in the world.
<video src="img/Kailey/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kailey">> "I don't understand this," <</speech>> she whispered after, curled against his chest, the lace around her waist. <<speech "Kailey">> "I just met you. I don't do this. I've never let anyone see me like this. What are you doing to me?" <</speech>>
<<speech "Jasper">> "Nothing you didn't ask for, little runner." <</speech>> He kissed the top of her head. <<speech "Jasper">> "I'm just giving you somewhere to stop." <</speech>>
<<elseif _s is 2>>
<img src="img/Kailey/Corr2.jpg">
She told herself it was the tea. That was the story she rehearsed on her morning run — the blend was just good, the house was just nice, the man was just easy to talk to. It meant nothing. She'd gone back twice, then three times, each time "just passing," each time staying longer, and she'd started noticing the way she looked for the house on her route, the way her chest did something when she saw the maples.
So when the text came — *Hey. Feeling a little stressed. Could use a friend. You free to come over?* — she was at the door before she'd decided to be, and it took her a moment to realize what was strange about it.
He needed her. No one had ever needed her. She was the one who showed up, who was strong, who never asked for anything — and here he was, asking her to come be the steady one for once, and it was the most terrifying, wonderful thing she'd ever been offered.
He was in the sitting room, shoulders a little slumped, and he looked up when she came in, and the smile he gave her reached his eyes. She was wearing the blue lace set under her jacket — she'd put it on for him without quite admitting why — and he noticed, and something in his face went soft.
<<speech "Jasper">> "You came." <</speech>>
<<speech "Kailey">> "Of course I came." <</speech>> She crossed the room and sat beside him, close. <<speech "Kailey">> "You asked. Nobody ever asks me. Tell me what's wrong." <</speech>>
He told her — nothing dramatic, just a day that had gone sideways, the house's money, a kid who'd been struggling — and she listened the way he'd listened to her, and it felt like the most important thing she'd ever done. The scent was there, warm around him, and she leaned into it, and she was the one who kissed him.
On the soft couch in the dim room she knelt for him, topless, and took him into her mouth slowly, her gold bracelet catching the light, his hand resting on the back of her head — not guiding, just there, warm. When he pulled her up, she lay back on the dark patterned rug beside the black leather chair, the light-blue lace-trimmed top she'd slipped into still around her shoulders, and he came across her tongue, her lips, her chin, thick and warm, and she stayed there, taking it, her loose bun coming apart, and when she opened her eyes and looked up at him, she was smiling through it.
<video src="img/Kailey/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<video src="img/Kailey/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kailey">> "I don't know how to be needed," <</speech>> she whispered against his chest afterward. <<speech "Kailey">> "I've never had anyone need me. I've always been the strong one. The one who shows up. I don't know how to just — be here. For someone." <</speech>>
<<speech "Jasper">> "You don't have to know how," <</speech>> he said. <<speech "Jasper">> "You just have to keep showing up. That's all I've ever wanted." <</speech>>
She curled into him, and the scent closed around her, and for the first time in her life she didn't want to be anywhere else.
<<elseif _s is 3>>
<img src="img/Kailey/Corr3.jpg">
She'd drawn a line, and she'd drawn it badly, and she knew it.
The line was: she was an athlete. She had a season, a coach, a future built on never stopping — and she couldn't belong to anyone, couldn't be anyone's, because belonging meant stopping, and stopping was the one thing she'd never learned how to do.
She stood in the sitting room that evening in the blue garter set, having dressed for him without quite deciding to, and she said it the way she'd practiced it all the way over.
<<speech "Kailey">> "I can't do this, Jasper. I can't belong to anyone. I've got a season — I've got a coach — I've spent my whole life running. I don't know how to stop. I don't know how to be yours." <</speech>>
He crossed the room, slow, and took her hands, and the scent settled around her like a held breath.
<<speech "Jasper">> "You don't have to stop running, Kailey. That's the thing." <</speech>> He said it gently, like he was correcting a small misunderstanding. <<speech "Jasper">> "You don't have to finish first to belong here. You can run all day and still come home to me at night. The house will be here. I'll be here." <</speech>>
The last wall she'd built came down somewhere in that sentence. He undressed her slowly — the garter, the stockings, the last of the fight — and poured warm oil over her shoulders, and she lay on the thick white rug in the bright room, and he took her from behind, slow and deep, his hand on the back of her neck, and it wasn't giving anything up. It was the first time in her life she'd ever been held like she didn't have to earn it.
<video src="img/Kailey/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Kailey">> "I've spent my whole life running," <</speech>> she said, and the words came out like a door opening. <<speech "Kailey">> "I want to stop. For you. I love you, Jasper ❤️." <</speech>>
He rolled her onto him, and she straddled him on the white rug, reverse-cowgirl, her long dark hair falling forward, his hands gripping and spreading her, and she rode him slow, eyes half closed, and when he came inside her and pulled out and she felt the warmth of it leaking from her, she reached back and held herself open for him, showing him what he'd left.
<video src="img/Kailey/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She kept her season. That was the strange, quiet part of it — she still ran, still trained, still broke her own times, and nobody saw anything. Nobody saw the woman who ran her route past the house and actually stopped, who walked up the path and through the screen door and into the kitchen where Chanel was making dinner and Carolina was arguing about the garden, who sat down and belonged. She was still Kailey — competitive, upbeat, unstoppable. She was just home now, in the way that mattered, and the runner who'd never once stopped had finally found the one thing in the world worth slowing down for.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The wellness office was a sanctuary, or it was supposed to be. After hours, it was a quiet haven of soft lighting and the faint, calming scent of lavender and chamomile. Aria was still at her desk, tidying after a long day that had drained her more than she cared to admit. She'd just spent an excruciating hour with Alina, trying to dissect what had gone so spectacularly wrong. Josh had come in for his appointment, the one Alina had been chasing him for weeks to attend, a mix of professional concern and personal obligation. He'd lasted five minutes. Five minutes of sneering, mocking, and thinly veiled contempt before he'd stormed out, leaving a wake of hurt frustration in his path.
Aria had stayed to offer a quiet apology to Alina, then to clean up the scattered pamphlets and straighten the chairs, a small, physical act to restore order to the emotional chaos. She was just wiping down the table when the door clicked open behind her, the sound unnaturally loud in the silence.
<img src="img/Aria/Normal.jpg">
<<speech "Josh">> "Still here playing therapist's little helper?" <</speech>> His voice was a lazy drawl, dripping with condescension. He leaned against the doorframe, arms crossed over his chest, his eyes flat and hard in the dim light, like chips of flint.
<<speech "Aria">> "You didn't have to be so rude to her," <</speech>> she said, turning to face him. She kept her voice carefully even, a professional tone she’d perfected for dealing with difficult students. <<speech "Aria">> "She's trying to help you, Josh. You know that. She genuinely cares." <</speech>>
<<speech "Josh">> "Help. She wants to fix me like I'm a broken toy," <</speech>> he scoffed, pushing off the doorframe and stepping into the room. His movements were slow, deliberate, a predator's prowl. <<speech "Josh">> "You want to know what I think of your little feelings circle? I think it's a joke. A pathetic little club for people who can't handle their own problems. Just like you're a joke, Aria." <</speech>>
She flinched, his words hitting their mark. <<speech "Aria">> "What is wrong with you? I'm trying to— " <</speech>>
<<speech "Josh">> "Trying to what? Help me?" <</speech>> He laughed, a harsh, ugly sound that echoed in the small office. <<speech "Josh">> "You don't care about me. You never did. You care about being the sweet girl everyone loves. About being Nathan's perfect little girlfriend. It's a performance, and you're the star." <</speech>>
There it was. Nathan. Always Nathan. The ghost between them, the source of all his bitterness.
<<speech "Josh">> "Nathan. The guy who has everything. Everyone loves him—Elsa, Eva, Marie—even you. Especially you." <</speech>> His voice dropped, low and venomous, as he closed the distance between them, stopping right in front of her desk, invading her personal space. <<speech "Josh">> "You know what people do to me? They leave. Claire, Marie, and even that self-righteous idiot. And now you—his little princess, sitting here pretending to care about me. Like I'm some project. Like I'm beneath you." <</speech>>
<<speech "Aria">> "I'm not—" <</speech>> she started, but he cut her off with a look.
<<speech "Josh">> "Shut up." <</speech>>
He didn't touch her. He didn't have to. He just looked at her, and the power hit.
It wasn't subtle. It wasn't a gentle wave of warmth. It was a flood, a tidal wave of raw, primal heat that slammed into her from the inside, stealing her breath, scrambling every thought she'd ever had. It was like being doused in gasoline and set on fire from within. Her knees buckled, the strength draining out of them as if they'd been cut off at the knees. Her thighs pressed together instinctively, then fell apart, a sudden, shocking wetness blooming between them, a deep, insistent ache that demanded to be filled. She gasped—a sound that was half shock, half pure, unadulterated want. Her body was burning, and it was all centered on the man in front of her, the man who hated her, the man she should be running from—and she couldn't move. She couldn't think. She could only feel, drowning in the lust he'd poured into her like poison into a vein.
<<speech "Josh">> "There she is," <</speech>> he murmured, a cruel note of triumph in his voice as he caught her, his hands gripping her arms to hold her up. He watched her pupils blow wide, her breath coming in ragged pants. <<speech "Josh">> "The sweet, perfect, put-together girlfriend. Look at you—shaking, wet, desperate. You can't even stand. That's what I do to people, Aria. That's what I'll do to all of them." <</speech>>
<<speech "Aria">> "Please—" <</speech>> she begged, the word tearing from her throat. She didn't even know what she was begging for. Mercy? Release? Or for more of the exquisite, agonizing fire that was consuming her? She just knew she needed—something—him—
<<speech "Josh">> "Please what? Say it. Say what you want," <</speech>> he demanded, his voice a low, commanding growl that vibrated through her.
<<speech "Aria">> "I don't—I can't—" <</speech>> Her body was answering for her, her hips rocking against nothing, a desperate, seeking motion. Her hands reached for him, trembling, needing to touch him, to anchor herself to the source of the fire. The last shred of her will was drowning under the heat.
<<speech "Josh">> "That's the thing, sweetheart. You don't get a choice anymore," <</speech>> he said, his lips curling into a smirk.
He led her, stumbling and pliant, to the small back room where Alina kept her personal things. On a chair sat a black plastic bag. <<speech "Josh">> "Put it on. All of it. I want to see Nathan's perfect girlfriend dressed like my little toy." <</speech>>
She changed with shaking, fumbling fingers, her body humming with a need that was so sharp it was almost painful. Inside the bag was a neon-yellow strappy one-piece that left very little to the imagination, a pair of black leather thigh garters with heart-shaped hardware, and a black leather choker that, in stark white letters, read DADDY. The word was a brand on her throat, and she wore it because she couldn't stop her hands from obeying, because the lust was a leash and he held the other end.
<video src="img/Aria/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Look at you. Nathan's sweet girlfriend, dressed like my little toy, wearing my name," <</speech>> he said, his voice thick with satisfaction as he grabbed her chin, forcing her to look up at him. <<speech "Josh">> "What do you think he'd say if he could see you now, spreading your legs for the man he hates?" <</speech>>
She shook her head, a final, futile protest, but her hands moved anyway, pulling the neon fabric aside, spreading herself for him, her eyes locked on his, ashamed and burning and utterly unable to stop. The lust owned her. There was no Aria left, only the ache.
He laid her back on the white sofa, the DADDY choker glinting at her throat, and knelt between her thighs.
<video src="img/Aria/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He ate her out slow and cruel, his tongue a weapon of torment and delight, and she came apart under his mouth—gasping, squirming, crying—hating him, hating herself, and unable to make it stop. When she came, it was a violent, shuddering sob, and he looked up at her, grinning like a wolf that had just brought down its prey.
<<speech "Josh">> "There she is. Nathan's perfect girl, coming on my tongue," <</speech>> he said, wiping his mouth with the back of his hand. <<speech "Josh">> "And she's going to keep coming back. Because I made you. And I don't let go of what's mine." <</speech>>
<<elseif _s is 2>>
She told herself she wouldn't go back. She told herself it was a mistake, a fever, a nightmare born of stress and his twisted power. She stayed away as long as she could—for three whole days—and every hour of it was pure, unmitigated agony. Her body burned for him, a constant, low-grade fever that flared into an inferno at the slightest provocation. Her skin crawled with a need so profound it was a physical pain. Nathan's touch, once a source of comfort, did nothing to ease the ache; it was like trying to put out a forest fire with a teacup of water. She'd lie beside him at night, his arm wrapped around her, his breathing soft and even in the dark, and she would tremble, hating herself, and think about Josh's hands, Josh's voice, the cruel, triumphant look in his eyes as he'd made her come apart.
She broke. It was inevitable. On the fourth day, after a sleepless night spent staring at the ceiling, her body a humming nest of need, she found herself at his loft before she'd even finished lying to herself about where she was going.
<img src="img/Aria/Corr1.jpg">
He was waiting, lounging on his couch like a king on his throne, and the look in his eyes was pure, unadulterated satisfaction. <<speech "Josh">> "I was starting to think I'd have to come find you," <</speech>> he said, his voice a lazy, arrogant drawl.
<<speech "Aria">> "I tried to stay away," <</speech>> she choked out, her voice cracking with the weight of her shame and desperation. <<speech "Aria">> "I couldn't. I can't stop thinking about you. I can't—it's like I'm on fire all the time—" <</speech>>
<<speech "Josh">> "Of course you are. I lit you up, and I'm the only one who can put it out," <</speech>> he said, pushing himself up from the couch. He walked to her, a slow, predatory stalk, and she should have run. She knew she should have run. Instead, she stood there, trembling, her body already leaning toward him, a flower turning inexorably toward the sun.
<<speech "Aria">> "What did you do to me?" <</speech>> she whispered, the question a plea.
<<speech "Josh">> "I made you mine," <</speech>> he said, his voice a low, possessive growl. He grabbed her jaw, his fingers digging into her skin, and forced her to look at him—and hit her with the power again, a fresh wave of heat that crashed through her like a physical blow. It was even stronger this time, more intense. Her knees gave out, and he caught her, lowering her to the floor, her body arching, desperate, already his before he'd even touched her.
<<speech "Josh">> "See? That's the thing about this. It doesn't wear off. It's a part of you now. I can do this whenever I want. And I will, every time you try to slip away, every time you even think about him." <</speech>> He crouched over her, his face close to hers, cruel and satisfied. <<speech "Josh">> "You're not my girlfriend, Aria. You're not even a person. You're my toy. And I don't share." <</speech>>
She knelt there on the floor, panting, drowning in the fire, and he undid his jeans, his movements casual, unhurried.
<video src="img/Aria/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She took him into her mouth—eager, desperate, sick with it—her lips and tongue working him with a frantic energy she didn't know she possessed. She stroked the shaft with one hand, her other hand gripping his thigh for balance, saliva glistening on his skin, her eyes locked up at his, a silent, desperate plea for something she couldn't name. He grabbed her hair, his fist tangling in the strands, and fucked her mouth with rough, shallow thrusts, and she let him, her body humming, her mind gone, replaced by the singular, all-consuming need to please him.
<<speech "Josh">> "Good girl. You're getting so good at this. Think Nathan knows his sweet little princess swallows like a whore for me?" <</speech>> He pulled her off him, making her look up, cum already glistening on her lips from his leaking precum. <<speech "Josh">> "I'm going to fill you up, Aria. Every time. And maybe, if you're good, I'll let Nathan keep pretending you're his while you carry my kid. Wouldn't that be perfect? Him raising my little bastard, thinking it's his. The ultimate betrayal." <</speech>>
The words should have horrified her. Somewhere, in the deepest, most protected part of her soul, a distant part of her was screaming, fighting, trying to claw its way out. But the lust was a thick, suffocating fog, and the horror couldn't reach her through it. She opened her mouth, her tongue out, and let him finish across her face—thick ropes of it on her tongue, her lips, her chin, dripping down onto the DADDY choker she still wore.
<video src="img/Aria/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She showed him the mouthful, little bubbles of cum on her tongue, and swallowed—then looked up at him, her eyes glazed and broken and completely his.
<<speech "Josh">> "There's my girl. Now get dressed. Go home to Nathan," <</speech>> he smirked, wiping a stray strand from her lip with his thumb. <<speech "Josh">> "Smile at him. Kiss him. Let him think he still has you. And every night, you'll dream of me." <</speech>>
She went home and lay beside Nathan, his arm around her, his breathing soft and even, and the horror came back in the dark—the cold, stark reality of what she'd done, what she'd become. But so did the ache. And she knew, with a sick, sinking certainty, that she'd be back at Josh's door by morning.
<<elseif _s is 3>>
She didn't fight it anymore. The DADDY choker had become hers, a part of her identity. She put it on when she came to him, took it off when she went back to Nathan, and the two lives had blurred into one seamless, agonizing existence. Publicly, she was still Nathan's girlfriend, sweet and helpful, everyone's favorite, the campus's resident saint. Privately, she belonged to Josh, completely, and the lust had become the shape of her—a burning, bottomless need that only he could fill, a hunger that could never be sated.
<img src="img/Aria/Corr3.jpg">
He had her in the bright bedroom with the white sheets, the light unforgiving, and she was on all fours, looking back over her shoulder at him with desperate, adoring eyes as he drove into her from behind—deep, relentless, his hand on her lower back, a possessive brand.
<video src="img/Aria/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Look at you. Nathan's perfect girlfriend, my perfect little whore," <</speech>> he leaned over her, his breath hot on her neck, his words a venomous caress. <<speech "Josh">> "I'm going to fill you so full of me that you forget your own name. And when Nathan holds you at night, he'll be holding what's mine. He'll be touching my property." <</speech>>
<<speech "Aria">> "Yes—please—fill me—" <</speech>> She was beyond shame, beyond herself. She pushed back against every stroke, begging, her whole world narrowed to the man using her, the man who owned her.
He pulled her to the sage-green couch and laid her back, gathering her legs and holding them open, and settled between her thighs—already cum-covered from their previous activities, slick and marked, taking him in again with half-lidded, adoring eyes as he sank deep and set a slow, claiming rhythm.
<video src="img/Aria/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, he crouched beside her, almost gentle, and wiped a strand of cum from her cheek with his thumb.
<<speech "Josh">> "You're going to help me now," <</speech>> his voice was low, satisfied, the sound of a man who had won. <<speech "Josh">> "I'm not just taking you, Aria. I'm taking everything Nathan has—his friends, his circle, his whole perfect life. And you're going to hand it to me, piece by piece." <</speech>>
<<speech "Aria">> "Yes, Master. Anything. I'll do anything," <</speech>> she meant it. The lust had hollowed her out and left only him, a single, all-consuming devotion.
<<speech "Josh">> "Tell me who he cares about. Who his people are. The girls who'd come to him for help. Bring them to me, and I'll make them like you," <</speech>> he smiled, slow and cruel, the predator's smile. <<speech "Josh">> "And when the whole school is mine—when Nathan's nothing but a name everyone's forgotten—you'll still be on your knees, exactly where you belong." <</speech>>
She nodded, and meant it. She'd go home to Nathan, smile, lie in his arms—and she'd whisper everything to Josh. His sweet girlfriend had fallen—and the man who took her wasn't done taking.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: Aria</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative"> <<if _s is 1>>
The bistro had been Nathan's idea, a small, tucked-away place with checkered tablecloths and the faint, comforting smell of garlic and basil. He’d been nervous about it, she could tell; he’d triple-checked the reservation, asked her three times if the lighting was okay, if the music was too loud. That was Nathan: earnest, gentle, quietly determined to get every detail right for her. It was one of the million things she adored about him, even if it made her feel a little guilty for how little effort she felt she deserved.
<img src="img/Aria/Normal.jpg">
She’d come straight from the wellness office, the scent of calming chamomile tea still clinging to her clothes. It had been a long day. A freshman had a full-blown panic attack during a group session, and Aria had spent two hours sitting with her on the floor, talking her through breathing exercises until the girl’s sobs had quieted to hiccups. Then, Alina’s carefully constructed weekly schedule had imploded due to a mix-up with room bookings, and Aria had stayed late, her phone pressed to her ear, untangling the mess with a patience that even surprised her. She was drained, her own well of empathy feeling dangerously low. But the moment she saw him across the table, his familiar, kind eyes crinkling at the corners as he smiled, the weight of the day seemed to lift. He'd already ordered her favorite tea, the one with the hint of lavender she’d mentioned once, in passing. He remembered things like that. He always did.
<<speech "Nathan">> "Rough day?" <</speech>> He asked it gently, leaning forward, his elbows on the table. It wasn't the perfunctory question people asked to fill silence; he asked it like he genuinely wanted to hear the answer, like he was prepared to carry the weight of it with her.
<<speech "Aria">> "Just the usual heroics," <</speech>> she tried for a light tone, but it came out more tired than she intended. She managed a small smile, tracing the rim of her teacup. <<speech "Aria">> "A freshman had a panic attack in my session — I stayed until she calmed down. Then Alina's schedule fell apart and I fixed it. That's my whole day, apparently. The campus fixer." <</speech>>
<<speech "Nathan">> "That's your whole life, Aria. Not just your day." <</speech>> His voice was soft, but it had a new edge of seriousness to it that made her look up from her cup. He reached across the table, not to take her hand, just to rest his beside it, a warm, solid presence. <<speech "Nathan">> "I've been watching you do it for months. Every time I see you on campus, you're taking care of someone. A lost freshman, a stressed-out friend, Alina, even me. You give and give and give. And I keep thinking — who takes care of her? Who makes sure you're not the one who breaks?" <</speech>>
The question caught her completely off guard. It was a direct hit to a part of her she kept carefully hidden, a small, insecure voice that whispered she was only valuable when she was useful. She opened her mouth to deflect, to brush it off with a self-deprecating joke like she always did, but nothing came out. The words were lodged in her throat. Because it was the first time anyone had ever asked her that question, and she realized, with a jolt, that she didn't have an answer.
<<speech "Aria">> "I... I don't really think about it," <</speech>> she finally managed, her voice barely a whisper. She looked down at her hands, suddenly feeling exposed. <<speech "Aria">> "I'm fine. I like helping." <</speech>>
<<speech "Nathan">> "I know you do. It's one of the things I love about you." <</speech>> He didn't push, didn't prod. He just stated it like a fact, simple and true. <<speech "Nathan">> "But you're not just a helper, Aria. You're a person. And I think about it all the time. I want to be the one who takes care of you. Is that okay? Can I try?" <</speech>>
The warmth that bloomed in her chest was enormous and terrifying, a tidal wave of pure, unadulterated affection that washed over every wall she’d ever so carefully built around her heart. It was more than just liking him, more than the comfortable crush she’d been nurturing for months. This was something deeper, something that felt like it had been sleeping inside her, waiting for him to wake it up. She didn't understand it. She only knew she'd never felt so completely and utterly seen in her entire life.
He walked her back to her dorm, the cool night air a welcome shock to her heated skin. They walked in a comfortable silence, his hand occasionally brushing hers, sending little sparks of electricity up her arm. At her door, under the sterile, humming hallway light, he stopped. The mirror on the wall opposite her door caught them both, their reflections looking like a couple from a movie. He turned to her, his eyes soft and intense, and cupped her face in his hands.
<video src="img/Aria/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She melted into him, her hands finding the soft fabric of his hoodie, then sliding up to the nape of his neck, her fingers tangling in his hair. He kissed her back like she was something precious, something he was afraid of breaking. It wasn't a frantic, passionate kiss, but a deep, slow, deliberate one that seemed to last forever. He nuzzled her throat, and she tilted her head back, a soft sigh escaping her lips, her heart pounding a frantic rhythm against his chest. The mirror showed them both, locked in their own world, the golden couple everyone was starting to whisper about on campus.
<<speech "Nathan">> "You don't have to carry everything alone anymore, Aria. Not with me." <</speech>> His voice was a low murmur against her skin.
<<speech "Aria">> "I don't know what to say," <</speech>> she breathed, her eyes fluttering open to meet his. They were swimming with tears she hadn't realized were forming. <<speech "Aria">> "No one's ever... no one's ever said that to me." <</speech>>
<<speech "Nathan">> "Then I'll keep saying it until you believe it," <</speech>> he promised, his thumb gently stroking her cheek. <<speech "Nathan">> "I'll say it every day for the rest of our lives if I have to." <</speech>>
He left her at her door with one last, soft kiss, and she floated inside, her body buzzing, her mind a complete blank except for the memory of his voice, his touch, his eyes. Later, alone in her bedroom, surrounded by the soft white walls and her collection of pink pillows, she lay back on her duvet, still wearing the sheer pink babydoll she’d put on to feel pretty. She couldn't stop thinking of him. The way he’d looked at her, not just with desire, but with a fierce, protective tenderness that made her feel like the most important person in the world. She touched herself in slow, deliberate circles, her eyes closed, his name a constant, breathless mantra on her lips. When she came, it wasn't just a physical release; it was an emotional one, a soft, happy sob tearing from her throat as the tension she’d been carrying for years finally broke. Because for the first time in her life, the girl who carried everyone else's burdens felt like someone was finally carrying her.
<video src="img/Aria/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<elseif _s is 2>>
She was falling for him, and it was a dizzying, terrifying, exhilarating freefall. She knew it, and a part of her was scared of how completely she was letting go. She'd catch herself smiling at her phone in the middle of a wellness session, and Alina would tease her with a knowing look, and she'd blush, a deep, crimson red that she couldn't hide. She told herself it was just a crush, a normal, healthy part of a new relationship. But her hands would shake when he texted, and her heart would race into overdrive when she saw his name on her screen, and some deep, primal part of her was terrified of how much she wanted him—and of what it would mean to let herself want anyone that much. It felt like giving away a piece of her soul, a piece she wasn't sure she'd ever get back.
<img src="img/Aria/Corr2.jpg">
She came to his place that evening, wearing the little black lace dress she’d bought on a whim. Underneath, she wore the matching black lace set—the delicate bralette and the daisy-print panties. She’d worn them for him without quite making a conscious decision to; it just felt like something her body knew she needed to do. He was waiting for her, and the moment he saw her, his eyes darkened with an appreciation that made her feel both powerful and vulnerable. He pulled her into his apartment, kicking the door shut behind him, and pressed her against the wall in the hallway. The mirror there, the same one from her building, caught them both, a distorted, passionate reflection. He kissed her until her knees went weak, until she was clinging to him just to stay upright. Then, with a gentleness that contradicted the urgency of his kiss, he pressed her down, guiding her to her knees on the hardwood floor. The black lace of her dress pooled around her, and she looked up at him, her heart hammering against her ribs.
<<speech "Aria">> "I don't understand what you're doing to me," <</speech>> she confessed, her voice small and honest, barely more than a breath. Her hazel eyes were wide, searching his. <<speech "Aria">> "I've never felt like this about anyone. It's... it scares me how much I want you. How much I need you." <</speech>>
<<speech "Nathan">> "It doesn't have to scare you," <</speech>> he said, his voice a low, soothing rumble. He crouched down in front of her, bringing them to the same level, and cupped her face in his hands. His thumb brushed gently across her cheek, wiping away a tear she hadn't realized had escaped. <<speech "Nathan">> "I'm not trying to take anything from you, Aria. I'm not trying to change you. I just want to be good to you. That's all I've ever wanted." <</speech>>
His words were a balm to her frayed nerves, a permission slip she didn't know she needed. She took him into her mouth, her movements tentative at first, then growing in confidence as she heard his sharp intake of breath.
<video src="img/Aria/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She worked him slowly, reverently, her tongue tracing the sensitive underside of his shaft before taking him deeper. Her cheeks hollowed, and she looked up at him through her lashes, her eyes conveying a vulnerability she couldn't put into words. His hand came to rest on her head, not guiding or forcing, just a warm, steady presence that grounded her. She wanted to be good for him. She wanted to be worth the way he looked at her, like she was the only woman in the world. When he finally pulled her up, his hands gentle under her arms, and led her to the bed with its soft blue sheets, she went willingly. She lay back, her dark hair fanning out against the pillows, and opened her mouth for him, a silent offering.
<video src="img/Aria/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He came across her tongue, her lips, the side of her nose, and she kept her mouth open, accepting it, then smiled up at him, soft and happy. He pulled her into his arms, holding her close, and she pressed her face into his chest, breathing in his scent.
<<speech "Aria">> "I've never let anyone see me like this," <</speech>> she whispered, her voice muffled by his shirt. <<speech "Aria">> "I've never... let go like this." <</speech>>
<<speech "Nathan">> "I know. Thank you for trusting me," <</speech>> he said, his voice thick with emotion. He kissed the top of her head, a lingering, gentle press of his lips. <<speech "Nathan">> "You're safe with me, Aria. That's all I ever want you to feel — safe." <</speech>>
She wanted to believe him. She did believe him. And that was the terrifying part—she trusted him completely, with a depth that scared her, and she wasn't sure she'd ever want to trust anyone else again.
<<elseif _s is 3>>
She loved him. It was the simplest, truest thing she'd ever known, a fundamental fact of her existence, like the sun rising in the east. She said it every chance she got, whispered it against his skin in the dark, shouted it with a laugh across the quad. She still helped everyone—she'd never stopped, and he never asked her to; he loved that about her, loved her big, bleeding heart. She still went to the wellness office, still talked to Alina, still waved at Marie across the quad. But there was a new lightness to her now, a new sense of purpose. Everyone who saw Aria knew that she was deeply, madly, in love with Nathan.
<img src="img/Aria/Corr3.jpg">
He gave her the thin gold necklace for their eight-month anniversary, a delicate chain with a small, unadorned heart pendant. She wore it always, a quiet, shimmering sign of the person she belonged to, the person she'd chosen. It rested in the hollow of her throat, a constant, comforting weight. She was waiting on his bed that afternoon, the late afternoon light streaming through the big windows, turning the room a warm, hazy gold. She was naked, her skin glowing in the sun. When he came in, she turned, a slow, deliberate movement, onto her hands and knees, arching her back for him, looking back over her shoulder with eyes that shone with pure, unadulterated adoration.
<video src="img/Aria/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Aria">> "I love you, Nathan. I love you so much," <</speech>> she breathed, her voice a husky purr.
<<speech "Nathan">> "I love you too, Aria. You're the most important person in my life," <</speech>> he replied, his voice thick with emotion as he knelt behind her.
He drove into her, deep and steady, one hand pressing possessively on her lower back, and she moaned his name into the pillows, her face turned sideways, completely lost in the sensation of him. He turned her onto her back, lifted her legs, and took her again—missionary, slow and deep—one hand sliding between them to rub her in tight, relentless circles until she shattered around him with his name a desperate cry on her lips.
<video src="img/Aria/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, she lay in his arms, glowing, her body humming with a deep, sated contentment. She told him about her week—about Eva, who'd been quiet lately, and Kylie, who reminded her so much of herself at that age, and the girls in the wellness office who carried too much, just like she used to. As she spoke, an idea began to form, a way to combine the two most important things in her life: her desire to help, and her all-consuming love for him.
<<speech "Aria">> "You helped me learn to let someone take care of me," <</speech>> she said, pressing a soft kiss to his chest, right over his heart. <<speech "Aria">> "You taught me that it's okay to not be strong all the time. I want to help them learn it too. The girls I work with, my friends... I want to introduce them to you. Show them what you showed me. Help them find someone who can take care of them, too." <</speech>>
He laughed, a soft, pleased sound, and held her tighter, his arms a secure, loving cage around her. He genuinely believed it was a wonderful idea—that his love could help other girls the way it had helped her, that he was offering a gift, not a cage. And the campus never knew that its sweetest girl, the one who helped everyone, was working for him now—quietly, happily, with all her heart, convinced she was doing them a kindness, a savior leading other lost souls to their salvation.
<</if>>
</div> <hr> <div style="text-align: center;"> /* Calculate total allowed moves for the current player */ <<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div>
<h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The wellness center was Aria's sanctuary, a place where she could channel her innate desire to nurture and help. But even sanctuaries have cracks, and lately, Aria had been feeling the strain. The constant emotional labor, the weight of other people's problems, it was starting to wear on her. She felt like a vessel, slowly being emptied. It was in one of these moments of quiet exhaustion, sitting alone in the campus library, that she first really noticed him. He wasn't loud or demanding like some of the other students; he was quiet, reading in a corner, a look of gentle concentration on his face. There was a sadness in his eyes, a deep-seated weariness that she recognized, a mirror to her own. She felt an immediate, instinctual pull to comfort him, to ask if he was okay.
<img src="img/Aria/Normal.jpg">
She saw him again soon after, leaving a small group therapy session hosted by the wellness program. He looked even more withdrawn than before. On impulse, she approached him, her voice soft and hesitant.
<<speech "Aria">> "Hey. I saw you leaving the session. Are you... doing okay?" <</speech>>
He looked at her, surprised, as if he wasn't used to people noticing him. His name was Jasper. He told her he lived at Havenwood, the foster house across town, and that group settings like that always made him feel like an exhibit. <<speech "Jasper">> "They all have their stories, their traumas. But they don't understand what it's like to not have a story to call your own. Just a collection of other people's leftovers." <</speech>>
His vulnerability was a stark contrast to the confident fronts most people put up. Aria listened, her heart aching for him. She offered to meet him for coffee, just to talk, one-on-one. He agreed, a flicker of hope in his eyes.
Their meetings became a regular thing. They'd talk in quiet corners of the library, or on a secluded bench by the campus lake. She told him about her own insecurities, the feeling of being a placeholder for everyone else's happiness. He listened with an intensity that made her feel truly seen for the first time. He started bringing her small gifts—a hand-mixed herbal tea in a thermos that he said helped with anxiety, a scented lotion he'd made himself, claiming the lavender and chamomile would help her sleep. The scents were subtle, calming, and they always made her feel safe, cherished, in a way that was profoundly intimate.
One evening, in the quiet of his room at Havenwood, he was rubbing the scented lotion into her hands after she'd confessed a particularly stressful day. His touch was gentle, his eyes full of a fierce, protective warmth.
<<speech "Jasper">> "You give so much to everyone, Aria. You let them lean on you, but who do you lean on?" <</speech>>
<<speech "Aria">> "I... I guess I lean on you," <</speech>> she admitted, her voice small, her heart thudding in her chest. The trust she felt for him was immense, overwhelming, a warm, comforting blanket that she wanted to wrap herself in forever.
<<speech "Jasper">> "Then let me be your strength," <</speech>> he murmured, leaning in to kiss her. It was a soft, tentative kiss, full of gentle reverence. It deepened, and the scent of the lotion, the tea, the unique alchemy of his presence, filled her senses, melting away every last defense. He was safe. He was home.
She didn't give herself to him that night, and he never asked. That was the thing about Jasper: he never asked for anything. It was Aria who took his hand as he walked her out of Havenwood and said, very quietly, <<speech "Aria">> "Come home with me." <</speech>> The drive across town took minutes, her thumb tracing slow circles over his knuckles at every red light, and then they were inside her own door—a bright, modern apartment filled with plants and soft blankets. In the white calm of her bedroom he undressed her with worshipful hands, his eyes never leaving hers, murmuring soft words of reassurance until the last of her nervousness dissolved. When a flicker of shyness made her arms cross over herself, he only pressed a kiss to her shoulder and turned her gently onto her stomach.
<<speech "Jasper">> "Just let me look at you," <</speech>> he murmured. <<speech "Jasper">> "That's all. You never have to hide anything from me." <</speech>>
And she didn't. She looked back at him over her shoulder with a soft smile, dark hair falling forward, one hand resting lazily against her own behind, holding the pose because he wanted to see her—because being seen by him, finally and wholly, felt like the safest thing she had ever done.
<video src="img/Aria/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Hours later, the tea long gone cold, they were curled on her living-room couch among the colorful throw pillows, Aria in nothing but her striped crop top and pink panties, the kisses drifting deeper. He laid her back against the cushions with infinite care, slid his hands up her thighs, and drew her pink panties aside—slowly, asking with his eyes. She answered by opening them. He worshipped her with his tongue then, patient and reverent, reading every gasp like a confession, and when the wave finally rose she pulled the striped top up and off herself—her last small barrier, surrendered by her own hands—and came apart beneath his mouth, trembling and utterly unafraid.
<video src="img/Aria/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, he held her, his arms a secure, loving circle around her. She felt a peace she hadn't known was possible, a profound sense of belonging.
<<speech "Aria">> "I've never felt this safe with anyone," <</speech>> she whispered into his chest, her voice thick with emotion.
<<speech "Jasper">> "You are safe with me, Aria. Always," <</speech>> he replied, his voice a low, soothing rumble. <<speech "Jasper">> "I'll always take care of you. You never have to be alone again." <</speech>>
She believed him. She believed him with every fiber of her being. And in that moment, the girl who was always there for everyone else finally found someone to be there for her.
<<elseif _s is 2>>
Aria began to measure her days by her moments with Jasper. Her time with Nathan felt like a performance, a script she was reciting from memory. Her time with Jasper felt real. It was the only time she felt she could truly breathe. The alchemical scents he gave her had become a constant presence in her life—the lotion on her skin, the tea she drank before bed, a small diffuser in her room that filled the air with a calming, proprietary blend that was uniquely his. The scents were an anchor, a constant reminder of his presence, his protection. They made the world feel softer, kinder, and made her trust in him feel like an unshakeable, fundamental truth.
<img src="img/Aria/Corr1.jpg">
She started canceling plans with friends, rescheduling meetings at the wellness center, all for a few stolen hours with him. She told herself it was just a phase, that the intensity would level off into a comfortable friendship, but she knew she was lying. The dependency was growing, a beautiful, terrifying vine that was wrapping itself around her heart. She needed him. She needed his quiet strength, his gentle touch, the way he looked at her like she was the only person in the world who had ever truly understood him.
One evening, she was with Nathan at a party, a loud, crowded affair that was usually her element. But tonight, the noise was grating, the lights too bright. She felt disconnected, adrift. She was standing with Nathan, smiling and nodding at something he was saying, but her mind was a thousand miles away. Then she smelled it—a faint, familiar scent of sandalwood and bergamot. Her head snapped up, and her eyes found him across the room. Jasper. He was just leaning against a wall, watching her, a small, knowing smile on his lips. The sight of him was like coming up for air.
Excusing herself with a mumbled apology to Nathan, she made her way through the crowd, her feet moving with a will of their own. She met him in a deserted hallway, the sounds of the party a distant thump.
<<speech "Jasper">> "You looked like you needed saving," <</speech>> he said softly, his hand coming up to cup her cheek. His touch sent a jolt of pure, unadulterated relief through her.
<<speech "Aria">> "I did," <</speech>> she breathed, leaning into his touch. <<speech "Aria">> "I hate it here. I hate pretending. I just want to be with you." <</speech>>
<<speech "Jasper">> "Then be with me," <</speech>> he said simply. He took her hand and led her out of the party, into the cool night air, and drove her back to Havenwood. The house was dark and silent around them—the younger boys asleep, the hallway thick with that familiar, sleepy smell of home—and his room held only the streetlight through the curtains, a worn wooden chaise beneath the window, and a low white sofa against the far wall. They didn't have long. She was supposed to be home before midnight, and they both knew it.
In the dim room he undressed her slowly, his hands reverent, but this time there was a new hunger in his touch, a possessive edge to his reverence. He kissed her, deep and demanding, and she answered with a desperate need that matched his own. When only her pink panties remained he eased them down around her thighs—no further—and guided her up onto the chaise to kneel facing him, her body bent forward, hips high, the position itself a question she was aching to answer.
<<speech "Jasper">> "You're mine, Aria. Not his. Mine," <</speech>> he stated, not as a question, but as a fact.
<<speech "Aria">> "Yours," <</speech>> she agreed, the word a sacred vow.
Then he stood before her and gathered her hair loosely into one fist, and she understood what he was asking—what she wanted, suddenly, more than air. She took him into her mouth for the first time, one hand wrapped around him, the other braced against the wooden arm of the chaise, and gave with the same devotion she had once scattered so carelessly on everyone else. He guided her gently, a low murmur of praise falling from his lips each time she hollowed and took him deeper, her eyes drifting closed, then flicking up to find his—checking, always checking, that she was doing this well. That she was enough.
<video src="img/Aria/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
And when she had barely caught her breath she was already crossing the room on her own—sinking to her knees on the floor beside the white sofa, hands resting on her thighs, looking up at him for a permission she no longer needed but craved anyway. He stood over her and cradled the back of her head, and she took him deep, cheeks hollowing, eyes locked on his face as though her whole world lived there.
<video src="img/Aria/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "That's it. Just like that," <</speech>> he urged, his voice a low, hypnotic murmur. <<speech "Jasper">> "Don't think about anything else. Just me. Just us. This is the only thing that's real." <</speech>>
She surrendered completely, her body a pliant instrument in his hands, her mind a blank canvas for him to paint on. When he finally pulsed against her tongue she swallowed everything he gave her, wanting nothing of him wasted, a low moan of devotion humming in her throat—and the sheer rightness of that surrender tipped her over her own edge, trembling, his name repeated against his skin like a prayer.
Afterward, she barely stirred when he checked the time for her. It was late. It was past late.
<<speech "Aria">> "I can't go back to him," <</speech>> she whispered, half-dressed and glassy-eyed, the words coming out slow and honest. <<speech "Aria">> "Not after this. Not after feeling like this with you." <</speech>>
<<speech "Jasper">> "You can," <</speech>> he said gently, fastening her bracelet for her, steady as anything. <<speech "Jasper">> "Go home. Sleep beside him. And when you need me — really need me — you know exactly where I am." <</speech>>
It was the kindest thing anyone had ever asked her to do, and the cruelest. She drove home with the windows down and his taste still in her mouth, slipped into bed beside Nathan while the room still spun, and lay awake listening to her boyfriend breathe — aching, hollow, and already counting the hours until she could need Jasper again.
<<elseif _s is 3>>
The line between Aria's two lives had dissolved completely. Her life with Nathan was a hazy, distant pantomime, a series of automated responses and hollow smiles. Her life with Jasper was the only thing that felt real, the only thing that mattered. The alchemical bond had become an unbreakable chain, a constant, comforting hum in her blood that reminded her that she was his, that she was safe, that she was loved. She was still the sweet, helpful Aria on the surface, but it was a mask she wore for him, a role she played to protect the precious, secret world they had built together.
<img src="img/Aria/Corr3.jpg">
He had her in a dim, hotel-style bedroom, the air thick with the scent of his custom oils. Both of them were oiled and gleaming, their skin slick under the soft light. She was on all fours, her back arched in a perfect, submissive curve, her face turned sideways against the pillows, her mouth open in a silent cry of pleasure as he drove into her from behind, one hand pressed firmly on her lower back, a brand of ownership.
<video src="img/Aria/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "You trust me completely, don't you, Aria?" <</speech>> he asked, his voice a low, possessive growl.
<<speech "Aria">> "Yes. Completely. I'd do anything for you," <</speech>> she gasped, her voice thick with a devotion so absolute it was almost terrifying.
He turned her, laying her over him, and she rode him—reverse cowgirl, her ass filling the frame, his hands spreading her cheeks, opening her to him completely. The rhythm was slow and deep, a deliberate, claiming act that made her whole world narrow down to the feeling of him inside her, the sound of his voice, the scent of their bodies mingling together.
<video src="img/Aria/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward, he held her, and she pressed her face into his chest, breathing in his scent, her body humming with a deep, sated contentment.
<<speech "Aria">> "I'm yours. Forever. I'd leave him—I'd leave everything—for you," <</speech>> she declared, her voice a fierce, whispered promise.
<<speech "Jasper">> "You don't have to leave anything," <</speech>> he said, stroking her hair, his touch gentle, satisfied. <<speech "Jasper">> "You'll keep your life. Keep him happy. He will join our family too. And you'll bring me the girls you trust—your friends from the office, the ones who need someone to see them, the way I saw you. You'll help them feel safe. The way I made you feel safe." <</speech>>
She nodded, and meant it with every fiber of her being. She would go back to Nathan, she would keep the sweet-girl mask firmly in place, and quietly, lovingly, she would build Jasper's circle—she would be his most devoted acolyte, the first of many, brought to him by the girl who had been made to feel like she was finally enough. And the campus never knew that its sweetest girl had already given herself away, body and soul.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
They'd been friends for months now. That was the strange, wonderful fact of it — Jasper had walked into her book club back when he'd first transferred, and he'd just... stayed. He came to every meeting. He remembered every name. He waited for her after, walked her home through the quiet campus, argued gently with her about the books she loved. Melody had stopped counting the days until the next meeting somewhere around the second month, because the days had stopped mattering — there was just Jasper, and the easy warmth of him.
The café by the arts quad was their spot — Sybil remembered both their orders now, chamomile for Melody and whatever Jasper was drinking that week, and she'd started putting a chair aside for him before he even arrived. Melody was tucked into the window booth with a stack of library books, her pink ruffled crop top a soft spot of color, when he dropped into the seat across from her with two cups.
<img src="img/Melody/Normal.jpg">
<<speech "Melody">> "You didn't have to — I was fine." <</speech>>
<<speech "Jasper">> "Yours went cold while you were reading." <</speech>> He pushed the fresh one toward her. <<speech "Jasper">> "Figured you hadn't noticed." <</speech>>
She laughed, surprised, and took it. The cup was warm in her hands, and the steam smelled like chamomile and rain and something underneath she couldn't name — something that smelled like him. It always did. She'd never mentioned it. It was just Jasper. He felt like safety, and she'd stopped questioning why a long time ago.
<<speech "Melody">> "You're too nice to me." <</speech>>
<<speech "Jasper">> "No such thing." <</speech>> He nodded at the stack. <<speech "Jasper">> "What's the haul?" <</speech>>
She lit up — she always lit up when someone asked about the books — and told him about the fantasy trilogy she was rereading, the one about the queen who protects her kingdom from a threat no one else sees. He listened the way he always did, like her words mattered, like she was the only person in the room. <<speech "Melody">> "I could stay here all day," <</speech>> she said, and it came out more honest than she'd meant it to. <<speech "Jasper">> "Then stay," <</speech>> he said, simply, like it was the easiest thing in the world. <<speech "Jasper">> "The books aren't going anywhere." <</speech>>
And then he set his cup down, and she caught it — something careful in his face, something braced. The warmth she'd come to take for granted went still, waiting.
<<speech "Jasper">> "There's something I need to tell you. And I need you to hear all of it before you decide anything." <</speech>>
She set her cup down. <<speech "Melody">> "Okay." <</speech>> Her voice was small. <<speech "Melody">> "I'm listening." <</speech>>
He told her about Havenwood first — the house he'd grown up in, the one that took in kids nobody else kept. He'd been passed between homes his whole childhood, moved on at the first sign of trouble, learned to make himself small and useful so he'd be allowed to stay. Then Thornfield — the man who ran the house now, the closest thing he'd ever had to a father. Thornfield had been working on something his whole life. A craft. The blending of scents — oils and herbs, things you brew and steep and let settle. And recently, he'd finished teaching Jasper the last part.
<<speech "Jasper">> "It does something to people," <</speech>> he said, and his voice was rough. <<speech "Jasper">> "When they're near it, it makes them trust you. It makes them feel safe. It makes them want to stay near you, want to please you, want to come back." <</speech>> He took a breath, and the next words came out careful, like he'd rehearsed them a hundred times. <<speech "Jasper">> "It's new. I'm still learning what it can do. And I've never — I need you to know this — I have never used it on you." <</speech>>
She blinked. Of all the things she'd braced for, that wasn't one. <<speech "Melody">> "What?" <</speech>>
<<speech "Jasper">> "Not once. Not ever." <</speech>> He leaned forward, and his voice was raw in a way she'd never heard it. <<speech "Jasper">> "The way you relax around me. The way you say the room goes quiet. That was never the craft. That's just you. That's just — us. I've had a hundred chances, Melody. Every time you sat down across from me, I could have made it certain. I never did." <</speech>>
<<speech "Melody">> "Why?" <</speech>> she asked, and her voice came out barely a whisper. <<speech "Melody">> "You could have had me. You must know — I've been — " <</speech>> She stopped, cheeks burning. <<speech "Melody">> "Why wouldn't you?" <</speech>>
<<speech "Jasper">> "Because I've spent my whole life making people need me so they can't leave," <</speech>> he said, and his voice shook. <<speech "Jasper">> "And then I met you, and I wanted you to want me because of who I am, not because of what I can make you feel. I'd rather lose you honestly than keep you by lying." <</speech>>
The café hummed around them — Sybil wiping a cup at the counter, a student laughing by the door. And Melody sat in the warm booth looking at the boy she'd trusted more than anyone in her life, and felt the floor settle under her again.
He'd never used it on her. Everything she felt was real. He'd handed her the worst thing about himself, before she'd ever been touched by it, and let her decide.
<<speech "Melody">> "You could have kept this forever," <</speech>> she said, and her voice was steadier than she felt. <<speech "Melody">> "You could have let it go and I'd never have known. And you told me anyway." <</speech>> She reached across the table and took his hand. It was shaking. He was shaking — the boy who made everyone feel safe. <<speech "Melody">> "I don't know what that makes you, Jasper. But I know what it makes me." <</speech>> She squeezed. <<speech "Melody">> "Seen." <</speech>>
He walked her home in the long evening light, and they didn't talk much, and the silence was heavy and honest. At her door he started to say something — she never found out what. She took his wrist and pulled him inside.
<<speech "Melody">> "Wait here," <</speech>> she said. <<speech "Melody">> "I'll be right back." <</speech>>
She changed into the green dress. She'd bought it a while back and told herself it was for no reason, and she'd never worn it, and now she knew why she'd kept it. She came back to him and stood in the soft light, and he looked at her like she was the first real thing he'd ever seen.
<video src="img/Melody/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
They made out on her bed, slow and desperate, her fingers in his hair, his hands mapping her through the thin fabric. She'd never let anyone this close — she was always the one in the corner, the one who listened, the one who made room — but here she was, holding the worst secret of the only boy who'd ever made her feel safe, and choosing him anyway.
He laid her back on the bed and kissed his way down her body — her throat, her collarbone, the soft curve of her stomach — and when he settled between her legs, she went still, breath held. <<speech "Melody">> "I've never done this," <</speech>> she whispered. <<speech "Jasper">> "I know," <</speech>> he said, and his voice was so steady, so sure. <<speech "Jasper">> "You don't have to do anything, Melody. Just be here. I've got you." <</speech>>
<video src="img/Melody/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He took his time, patient and thorough, until she came apart against his mouth with a sound she'd never heard herself make. Afterward she lay beside him, breathing hard, her hand finding his in the dark.
<<speech "Melody">> "I feel safe with you," <</speech>> she whispered. <<speech "Melody">> "I've always felt safe with you. Even before tonight. Even before I knew — it's not the craft, you said. It was never the craft. It's just you." <</speech>>
He turned his face into her hair, and his voice came out thick. <<speech "Jasper">> "It's just you, too," <</speech>> he said. <<speech "Jasper">> "You're the only person I've ever wanted to be honest with. I'm not going to ruin that. Not ever." <</speech>>
She fell asleep in his arms that night, warm and certain — the girl who'd never been the center of her own story, holding the one person who'd ever made her want to be.
<<elseif _s is 2>>
Knowing changed everything — but not the way she'd feared. The fear had been that the truth would poison what she felt. Instead it made it heavier, sharper, harder to ignore. Because now she knew what he was, and she knew he'd never used it on her, and that meant every feeling she had was real — and real was terrifying.
The other part was harder. He'd told her about the craft, and about the people he'd used it on. Not in detail — she'd stopped him, because she didn't want the details — but she knew. The boy she loved made people need him. He collected them, so they couldn't leave. And she'd seen it once, at the café — a girl who'd looked at Jasper with that glassy, adoring shine, and Melody had recognized it from across the room and felt her stomach drop.
She didn't confront him about it. She didn't know how. Instead she did the only thing she knew: she went to him, in the white crop top and the purple mini skirt she'd bought after that first night, telling herself it wasn't for him.
<img src="img/Melody/Corr1.jpg">
He opened the door of the bright room at the top of the building — the one with the floor-to-ceiling windows, the hills going green beyond the glass — and his face did that thing it always did when he saw her, the slow, helpless light. <<speech "Jasper">> "I wasn't sure you'd come." <</speech>>
<<speech "Melody">> "I almost didn't," <</speech>> she said, and her voice was honest. <<speech "Melody">> "I saw you at the café. With that girl. The one who looked at you like — like you were the whole world." <</speech>>
He went very still. <<speech "Jasper">> "She's nobody. She's just — " <</speech>>
<<speech "Melody">> "She's somebody you used it on." <</speech>> It wasn't a question. <<speech "Melody">> "I could see it. I knew that look, Jasper. It's the look I'd have had, if you'd let it happen to me." <</speech>>
The silence stretched. He didn't deny it. <<speech "Jasper">> "Yes," <</speech>> he said finally, and his voice was low. <<speech "Jasper">> "She is. And I hate that you saw that. I hate that you know what I am." <</speech>>
<<speech "Melody">> "I knew what you were the night you told me," <</speech>> she said, crossing to him. <<speech "Melody">> "I chose you anyway. I keep choosing you. That's the part I can't — " <</speech>> Her voice cracked. <<speech "Melody">> "I can't live with what you do, Jasper. I can't. Every time I think about it, it's like a knife. But I can't live without you, either. I've tried to picture it — the club, the café, my life — without you in it, and there's nothing there. Nothing." <</speech>>
He crossed the room and kissed her like he'd been drowning, and she kissed him back, and they ended up on the white bed, her gold chain — the one he'd given her, that she'd worn every day — catching the light. She lay over him, nude and open, and took him into her mouth, slow and deliberate, her eyes locked on his, and he watched her with something raw and unguarded she'd never seen in anyone.
<video src="img/Melody/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up, and she knelt above him, and he finished across her face — thick and warm, on her tongue, her lips, her chin — and she swallowed without hesitation, looking up at him, and held his gaze.
<video src="img/Melody/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Melody">> "Promise me something," <</speech>> she whispered, still kneeling, looking up at him. <<speech "Jasper">> "Anything." <</speech>> <<speech "Melody">> "When you get scared. When you're afraid I'm going to leave. Promise me you won't use it on me. Promise me you'll let me go before you make me stay." <</speech>>
He was quiet for a long moment. Then he lowered himself to her level, took her face in both hands, and said: <<speech "Jasper">> "I promise. I'll let you go, Melody. I'll watch you walk away, and I'll never make you stay. You're the one thing in my life that's real, and I won't — I won't taint that." <</speech>>
She believed him. She wanted so badly to believe him. And she lay in his arms that night, feeling the weight of everything she knew, and everything she'd chosen, and she didn't know yet if she was brave or just too far gone — only that she couldn't leave him. Not even to save herself.
<<elseif _s is 3>>
She didn't tell anyone. That was the quiet, strange thing — she went to her book club and led the discussion and made the shy freshmen feel heard, and nobody noticed anything at all. The girl who always made room for everyone else's stories had a secret now, and it sat under her skin like a second heartbeat: she knew exactly what Jasper was, and she had chosen him anyway, and he had never once made her feel anything she hadn't chosen herself.
She came to him that evening in the pink lace set she'd bought after the confession — because she wanted to be beautiful for him, because she'd decided that if this was who he was, she would meet him there on purpose. He was waiting in the bright room with the big windows, the hills going dark beyond the glass.
<img src="img/Melody/Corr2.jpg">
<<speech "Melody">> "I've been thinking about what you do," <</speech>> she said, and the words came out steady. <<speech "Jasper">> "What?" <</speech>> <<speech "Melody">> "The craft. The way you make people feel safe, so they stay. I used to be afraid of it. I used to think it was the worst thing about you." <</speech>> She crossed to him, and there was no trembling in her hands anymore. <<speech "Melody">> "But you never used it on me. You let me come to you on my own. You trusted me with the truth before you ever touched me with it." <</speech>> She reached up, touched his face. <<speech "Melody">> "So now I want to choose it. Deliberately. I want you to use it on me, Jasper. I want to be yours the way you make everyone yours — but knowing, this time, exactly what I'm choosing." <</speech>>
He went very still. <<speech "Jasper">> "No." <</speech>> His voice was rough. <<speech "Jasper">> "Melody, no. You're the one — you're the only person I've ever — I promised you I'd never — " <</speech>>
<<speech "Melody">> "You promised you'd never use it to keep me," <</speech>> she said, and her voice was soft and certain. <<speech "Melody">> "You're not using it to keep me. I'm asking you to. That's different. That's mine to give." <</speech>>
He looked at her for a long moment — and then he went to the small kitchen and brewed her the tea he'd made her a hundred times. Chamomile, the same as always, and she watched his hands as he worked, and when he came back he set the cup on the table between them. The steam carried the warmth she knew — the scent that had been around him since the first day — and this time she could name it.
<<speech "Jasper">> "You don't have to," <</speech>> he said, and his voice was rough. <<speech "Jasper">> "This isn't a test, Melody. You can leave that cup sitting there and walk out, and I'll — I'll let you. I promise I'll let you." <</speech>>
She picked it up before he could finish. She held it in both hands, looked at him over the rim, and drank — deliberately, of her own will, the warmth sliding down her throat and folding around her like a home she'd been looking for her whole life. The same warmth she'd always felt around him — the one she'd known was real — made real on purpose, at her asking. She finally found her confidence.
<img src="img/Melody/Corr3.jpg">
He laid her on her stomach on the white bed, hips raised, and drove into her from behind — slow, deep, his hand firm on her hip, the hills going dark beyond the window. She pressed her face into the sheets and moaned his name, and every stroke felt like the truth she'd chosen.
<video src="img/Melody/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Melody">> "I trust you," <</speech>> she breathed, and the words were clear and certain. <<speech "Melody">> "I trust you. Completely ❤️. More than I've ever trusted anyone. And I know exactly what I'm trusting." <</speech>>
He turned her over, and she let her hair fall into the two loose pigtails she'd tied for him, and he lifted her leg high and sank into her again, the purple light soft around them, her hoop earrings swinging with every stroke. She watched him through half-lidded eyes and smiled — the real smile, the one she kept for no one — and held his gaze the whole time.
<video src="img/Melody/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay in the crook of his arm, her head on his chest, listening to the heartbeat she'd once been afraid to trust. <<speech "Melody">> "You know the worst part of it all?" <</speech>> she murmured. <<speech "Jasper">> "What?" <</speech>> She pressed closer. <<speech "Melody">> "I never needed the scent. Not once. You made sure of that. I fell for you on my own — you were always going to be the one. I just didn't know it until you told me the truth." <</speech>>
Jasper was quiet for a long time. And then, very softly, he said: <<speech "Jasper">> "You're the only person who's ever seen me and stayed." <</speech>>
She still ran her book club. She still made rooms of shy people feel heard. But at night she went to him, and breathed him in on purpose, and belonged to him — the one girl who knew exactly what he was and chose him anyway, the one he'd never had to take because she gave herself. The room he'd spent his whole life filling with people who couldn't leave had one person in it who had chosen to stay — and he'd made sure, from the very first, that her choosing was real.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The text came while Melody was shelving returns in the library — a sharp, insistent chime that cut through the quiet like a scalpel.
*Melody. My office. Immediately. We need to discuss the budgetary discrepancies in the library's acquisitions fund. This is not a request. — Dr. Caldwell.*
Her stomach dropped. She hadn't done anything wrong — she was sure of it — but Dr. Caldwell's authority was absolute, and the thought of his displeasure made her want to curl into the nearest corner and hide, the way she always did. She gathered her things and walked across campus with her heart hammering, the shy girl who ran a book club going to face the man who ran everything else.
<img src="img/Melody/Normal.jpg">
His office was a tomb — dark mahogany, leather-bound tomes, the faint sterile smell of electronics, blinds drawn against the afternoon. Dr. Caldwell sat behind his desk, bald head gleaming under the single lamp, those dark eyes fixed on her the moment she entered. He gestured to the chair. She sat.
<<speech "Caldwell">> "Your role as Book Club President has come to my attention, Miss Melody." <</speech>> His voice was a low, clinical monotone. <<speech "Caldwell">> "While quaint, it appears to be fostering an environment of unregulated social interaction — an environment I find detrimental to the focused academic atmosphere we work to maintain. The acquisitions budget for your group has been flagged for review." <</speech>>
<<speech "Melody">> "We just talk about books," <</speech>> she managed, small. <<speech "Melody">> "It's a safe space for students who are shy. Like me. It — it's important to them." <</speech>>
<<speech "Caldwell">> "Important," <</speech>> he repeated, and something in his voice shifted — warmer, smoother, almost kind. <<speech "Caldwell">> "I understand. You care about these students. That's why I'd like to help you." <</speech>> He leaned forward. <<speech "Caldwell">> "I have a focus exercise — a documented technique used to help people like you, who carry too much of others' weight. It will calm the mind, improve your clarity, and allow you to run your little club more effectively. Ten minutes, and we'll discuss the budget. If you find it useless, you're free to leave." <</speech>>
He gestured to the projector screen on the far wall, already humming softly, a slow spiral turning in muted blues and silvers. Melody hesitated — and then she stood and walked to the chair he'd placed before it, because she was a good girl who didn't say no to authority, and because she'd do anything to protect her club.
<<speech "Caldwell">> (recording) Breathe in. Breathe out. Your thoughts slow. <</speech>> The voice came layered under the hum, low and patient. <<speech "Caldwell">> (recording) Your shoulders drop. Your mind empties. You are safe here. You are understood. <</speech>>
She snorted, embarrassed, and kept watching. The spiral turned. The voice continued, slow and relentless. Her shoulders dropped without her telling them to. Her breathing slowed to match the pattern, and her hands unclenched in her lap, and somewhere past the half-hour mark — the clock on his desk had already crossed the hour — she stopped thinking about the budget entirely, her head tilted, her eyes fixed on the center of the spiral, a faint flush climbing her neck.
<<speech "Caldwell">> "Good. You're doing very well, Melody. Deeper." <</speech>>
She didn't answer. Her lips parted. And when he told her to stand, she stood. When he told her to undress, her hands moved automatically — the pink ruffled crop top, the floral skirt — until she stood in the sheer turquoise crop top and the pink plaid mini skirt in the dim light, looking at him with eyes that were open and glassy and utterly his.
<video src="img/Melody/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He watched her lift the sheer top, slow, exposing herself for him, cup and squeeze her breasts, smiling at him with that open-mouthed, empty smile — and he nodded, clinical, approving, like a man examining a piece of work. <<speech "Caldwell">> "Yes. You've spent your whole life hiding in that corner, making yourself small. Do you know why I find that interesting, Melody? Because a girl who hides that hard is a girl with something to be drawn out." <</speech>>
He rose, walked around her, and pressed her back against the dark sofa — and knelt, and put his mouth to her breast, licking and sucking her nipple slow and deliberate while she stood still, one hand resting on his shoulder, her expression neutral and glassy, a girl who no longer had a self to flinch with.
<video src="img/Melody/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When he was done he stepped back and adjusted his cuffs. <<speech "Caldwell">> "That's enough for today. Get dressed. Go back to your little club. We'll continue the review soon." <</speech>>
She dressed in a daze and walked home, and she told herself she'd never go back — but that night she lay awake with her skin still humming where his mouth had been, and she couldn't remember what had happened after the spiral, only that she needed to see him again.
<<elseif _s is 2>>
She didn't remember deciding to come back. That was the worst part. She'd spent the days telling herself the whole thing was a fever dream — and then her feet had carried her across campus, and she was standing outside his door in the white crop top and purple mini skirt she'd dressed in without being able to name why, her hands clasped in front of her like a student called to the office.
<img src="img/Melody/Corr1.jpg">
Caldwell opened the door and looked at her with quiet satisfaction, as if she'd been exactly on schedule. <<speech "Caldwell">> "You've returned, Melody. I expected you sooner." <</speech>>
<<speech "Melody">> "I don't — " <</speech>> Her voice came out soft and thready. <<speech "Melody">> "I don't know why I'm here. I only remember needing — needing further verification. About the club. That's all I remember." <</speech>>
<<speech "Caldwell">> "Of course," <</speech>> he said, and there was a smile in his voice that never reached his eyes. <<speech "Caldwell">> "Let's continue the review, then. On your knees, Melody." <</speech>>
She dropped without deciding to — her body obeying before her mind could catch up — and she took him into her mouth, slow and obedient, her eyes looking up at him through the haze, the white top she wore bunched at her shoulders. He watched her work, one hand resting on the back of her head, and the contempt in his voice was almost affectionate.
<video src="img/Melody/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "You thought you led those children, didn't you? A quiet little leader with her quiet little room." <</speech>> He made her take him deeper. <<speech "Caldwell">> "You were never leading anyone, Melody. You were hiding. And now you're a mouth and a purpose, waiting for someone to aim it." <</speech>>
He pulled her off and knelt her on the white tiled floor, and she looked up at him, mouth open, tongue out — the red strappy top clinging to her — and he stood over her and released across her tongue, her lips, her chin, thick and white, and she kept her eyes fixed upward, taking it, not flinching, a thin strand of spit and cum stretching between her lips and his cock.
<video src="img/Melody/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Better. You're learning." <</speech>> He wiped a strand from her chin with his thumb. <<speech "Caldwell">> "Go back to your club. Smile at them. Let them keep thinking you're their gentle leader." <</speech>>
She went home and lay awake, and the horror came back in the dark — but so did the pull. And she knew, with a sick certainty she couldn't fight, that she'd be back before she'd decided to come.
<<elseif _s is 3>>
She came when he called, every time, no matter the hour — dressed in what he left out for her, kneeling when he gestured, opening when she was told. Publicly she was still Melody: the soft-voiced president of the book club, everyone's favorite quiet girl, the one who made the shy kids feel heard. Privately there was only Caldwell, and the hum of the projector, and the hollow, perfect peace of a will that had stopped fighting.
<img src="img/Melody/Corr2.jpg">
He had her in the bright room off his office — the pink lace set he'd left out for her, soft waves in her hair, standing against the white wall while he looked her over like an asset. <<speech "Caldwell">> "Your club has been restructured, per my recommendation. The discussions will now focus on approved texts. The members will not notice. You will make sure of it." <</speech>>
<<speech "Melody">> "Yes, Master," <</speech>> she said, soft and certain. <<speech "Melody">> "I'll make sure they don't notice." <</speech>>
He laid her on her stomach on the white bed, the pink string bikini bottom pulled aside, and drove into her from behind — one hand gripping her hip, the other closing around her throat from the front, holding her steady as he thrust, deep and unhurried. She turned her face into the sheets, mouth open, eyes half-lidded, and she moaned his name with every stroke, the window bright behind them, the hills falling away.
<video src="img/Melody/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The girl who thought she was the gentle leader. Look at you now — worthless, and proud of it." <</speech>> He drove deeper, and she cried out. <<speech "Caldwell">> "You're a pretty empty thing with my name on it, Melody. That's all you are. That's all you ever were, under the shyness and the books." <</speech>>
<<speech "Melody">> "Yes, Master," <</speech>> she gasped. <<speech "Melody">> "I'm yours. I'm empty. I exist for you." <</speech>>
He pulled out and had her sit on the white surface, and he knelt between her legs and spread her open with his fingers — and the thick white fluid leaked from her, slow and continuous, running down in a long strand, and she lay back, eyes half-lidded, mouth open, her hair in the two loose pigtails she'd tied for him, pink scrunchies, pink eyeshadow, a girl made to be looked at and used.
<video src="img/Melody/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He brought his finger, wet with her, to her lips — and she opened her mouth and took it onto her tongue, eyes half-lidded, obedient, grateful. <<speech "Caldwell">> "There's my good girl. Now go run your little club. Smile at them. Be their gentle leader." <</speech>> He looked at her, cold and satisfied. <<speech "Caldwell">> "And every night, you'll be on your knees for me, and you'll know exactly what you are." <</speech>>
She went back to her book club and sat at the head of the table and smiled, and the shy kids told her their stories, and nobody noticed anything at all. But that night she knelt in the dark office with the projector humming, and she was empty, and she was his, and for the first time in her life the girl who'd hidden behind other people's stories had no story of her own left at all.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The book club was winding down for the night, the last few members gathering their things, and Melody was tidying the chairs in the library's little back room — the shy girl who ran the room, a soft spot of pink and white in the dim light, her blonde ponytail held with a pink scrunchie. She loved these moments, the calm after the meeting, the smell of old paper and the quiet hum of her own small world. She'd built it herself, this room. It was the one place she felt in control.
<img src="img/Melody/Normal.jpg">
The door creaked open and Josh leaned in the frame, arms crossed, a smirk already in place. He wasn't in the club. He wasn't here for a book. He'd come because a buddy had laughed and said the little librarian who ran the book club was the easiest target on campus — shy, alone at night, no one to walk her home. Josh had said he could make her fold in five minutes.
<<speech "Josh">> "Well, well. The little librarian. Playing with your books again?" <</speech>>
Melody flinched — the way she always did when someone too loud came into her space — and clutched the stack of books to her chest like a shield. <<speech "Melody">> "The meeting's over. You — you're not in the club." <</speech>>
<<speech "Josh">> "Club. Right. A bunch of shy kids reading fairy tales." <</speech>> He pushed off the doorframe and walked in, slow, too close. <<speech "Josh">> "Bet you don't get much real excitement in here, do you, Melody?" <</speech>>
He knew her name. That caught her — she didn't know his. <<speech "Melody">> "I — I don't need excitement. I like the stories. They're — they matter." <</speech>> She straightened, and for a second she wasn't the shy girl — she was the leader of this room. <<speech "Melody">> "And the kids who come here matter too. Even if you think they're fairy tales." <</speech>>
Josh blinked. He hadn't expected the spine. And that was the moment — the exact moment she pushed back — that something in him decided she wasn't just an easy target. She was a pretty, timid thing with a fire under the quiet, and he wanted to see it burn.
<<speech "Josh">> "Cute," <</speech>> he said, stepping closer. <<speech "Josh">> "Real cute. You talk about everyone else's stories all day. You ever wonder what yours would look like if you actually lived one?" <</speech>>
<<speech "Melody">> "I live my stories," <</speech>> she said, but her voice wavered. <<speech "Melody">> "I just — I don't need to be the center of them." <</speech>>
That was the last thing she said before the power hit.
It slammed into her like a wall of heat — a tidal wave from the base of her spine that swamped every careful, quiet wall she'd ever built. Her knees buckled. She caught the edge of the table, gasping, the books spilling from her arms, and the heat roared through her, turning every thought to static, every instinct to a single burning need centered on the man in front of her — the loud, smirking man she'd been shrinking from thirty seconds ago.
<<speech "Josh">> "There it is," <</speech>> he murmured, catching her elbow, and there was dark delight in his voice. <<speech "Josh">> "The girl who hides in corners. Look at you now — can't even stand. Can't even think." <</speech>>
She looked up at him, glassy, trembling, her mouth open. <<speech "Melody">> "What — what did you — " <</speech>>
<<speech "Josh">> "I didn't do anything," <</speech>> he lied, smooth. <<speech "Josh">> "You just finally met someone not impressed by the shy act." <</speech>>
He walked her out of the library, her hand in his like she'd always been following, and she couldn't make herself let go. His place was a bedroom with white sheets and a dark wooden headboard, soft light, the smell of him everywhere. He sat on the edge of the bed and pulled her down beside him, and she was shaking, and the shy girl who'd never been touched like this was leaning into him like a flower to the sun.
<<speech "Josh">> "Shh," <</speech>> he said, and it was almost gentle, which made it worse. <<speech "Josh">> "I've got you. You've been hiding in that little club your whole life, haven't you? Hiding behind other people's stories. Let's see what's under it." <</speech>>
He slid the straps of the pale yellow satin bra down her shoulders, slow, and she let him — her body had already decided, the heat a leash in his hand. He cupped her small breasts through the fabric, kissed her slow and deep, thumbs finding her nipples, and she made a sound she'd never heard herself make, arching into him, her hands coming up to rest on his head and neck as he bent to her chest and sucked and licked until she was trembling against him.
<video src="img/Melody/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her back on the white sheets, still in the yellow panties and the lace-top stockings, and pulled the crotch aside and put his mouth on her — and she came apart so fast it shocked her, gasping into the dark, her hands in his hair, the quiet girl who ran the book club crying out under a man she'd never even spoken to before tonight.
<video src="img/Melody/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward he lay over her, grinning, and wiped a strand of hair from her face. <<speech "Josh">> "There's my girl. You talk about other people's stories all day, Melody. You've got your own now." <</speech>> He kissed the corner of her mouth. <<speech "Josh">> "And it's about me." <</speech>>
She went home that night and lay awake, trembling, hating herself, and burning for him — and she knew, with a sick certainty, that she'd be back before the week was out.
<<elseif _s is 2>>
She tried to stay away. She told herself it was a fluke, a fever, a bad dream. She went to her book club and sat in her corner and tried to feel like herself, and she couldn't — because every time the room got quiet, she heard his voice, and every time someone laughed, she felt his hands.
She was in the white crop top and the purple mini skirt she'd bought after that night, telling herself it wasn't for him, when her phone buzzed. A single message from a number she hadn't saved: Coffee shop. Now.
She told herself she wouldn't go. She went.
<img src="img/Melody/Corr1.jpg">
He was at the red leather couch in the back, city lights glowing beyond the window, and he looked up at her with that slow, satisfied smile. <<speech "Josh">> "The librarian returns. Took you longer than I thought." <</speech>>
<<speech "Melody">> "I came to tell you to leave me alone," <</speech>> she said, and her voice cracked. <<speech "Melody">> "This isn't me. I don't — I don't get like this. This — this is wrong." <</speech>>
<<speech "Josh">> "Wrong?" <</speech>> He laughed, soft and cruel. <<speech "Josh">> "Your body doesn't think it's wrong. Your body's been screaming for me since that night. That's why you bought that skirt. That's why you came." <</speech>>
She tried to step back, and her knees buckled, the heat flooding back at the sound of his voice alone. He caught her, lowered her to the couch, and the last coherent thought she had was that she'd walked right into it, and some traitor part of her had known she would.
He shrugged the red off-shoulder top down her arms and she took him into her mouth — hungry, desperate, ashamed of how hungry and desperate she was — her eyes flicking up to his as she worked, and he watched her with that smug delight, one hand on the back of her head guiding her. <<speech "Josh">> "There's the fire I saw," <</speech>> he breathed. <<speech "Josh">> "Everyone gets your shyness, Melody. I get the truth." <</speech>>
<video src="img/Melody/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up onto the white sheets of his bed, nude, her silver hoop earrings catching the light, and knelt over her, stroking himself above her torso. She held her own breasts for him, red-nailed fingers squeezing, looking up at him with her mouth open and her eyes half-lidded — and he came across her chest, thick and white, painting her neck, her collarbone, her small breasts, and she watched it land, transfixed, and didn't flinch.
<video src="img/Melody/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Melody">> "I hate you," <</speech>> she whispered, and her voice shook. <<speech "Melody">> "I hate you so much." <</speech>>
<<speech "Josh">> "I know," <</speech>> he said, pleased. <<speech "Josh">> "That's the best part. You hate me, and you're still here, still wet, still mine." <</speech>>
She dressed with shaking hands and went back to her life, and she tried to be the shy girl who ran the book club, and she couldn't — because every quiet moment was loud with the memory of his voice, and she knew she'd be back. She hated that she knew. She hated that she wanted it.
<<elseif _s is 3>>
She didn't fight it anymore. The mask came off when she came to him — the shyness, the corner, the quiet girl who hid behind other people's stories. With him she was something else: hungry, open, shameless, a version of herself she'd never known existed. Publicly she was still Melody, the soft-voiced president of the book club, everyone's favorite quiet girl. Privately she belonged to Josh, and the lust had become the shape of her.
<img src="img/Melody/Corr2.jpg">
He had her in the bright bedroom with the white bed, and she stood in the pink lace set he'd told her to wear, hair in the loose ponytail with the pink scrunchie, hoop earrings catching the light. He looked her over like he was admiring his own work. <<speech "Josh">> "Look at you. The little librarian. If your club kids could see you now — on your hands and knees, dressed like this, waiting for me." <</speech>>
<<speech "Melody">> "They can't," <</speech>> she said, and her voice was soft and needy. <<speech "Melody">> "Only you see this. I saved it all for you, Josh ❤️." <</speech>>
He laid her over the white bed on all fours in the pale yellow lingerie he'd left out for her, panties pulled aside, thigh-highs still on — and he gripped her neck from behind, one hand firm on her hip, and drove into her, deep and steady. She pressed her face into the sheets and moaned his name, her body rocking with every stroke, her ponytail falling across her face, and when he pulled out she was dripping, and she reached back and held herself open for him, waiting.
<video src="img/Melody/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He took her to the exam table in the back room — the one he'd had moved there, she never asked why — and laid her back, legs spread and held open, and pushed into her one more time, slow, deep, until he pulled out and the thick white cum leaked from her, running down and dripping, and she lay there, eyes half-closed, mouth open, watching him watch it.
<video src="img/Melody/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "There she is," <</speech>> he murmured, crouching beside her, running a thumb along her jaw. <<speech "Josh">> "You spent your whole life in that little club, hiding in the corner, making sure nobody saw you. And now the whole campus knows you as the shy one, and not a single one of them knows that the second I call, you're on your knees before you hang up." <</speech>>
<<speech "Melody">> "Yes, Josh," <</speech>> she whispered, and she meant it with everything she had left.
<<speech "Josh">> "That's my girl. Now go run your little club. Be the shy one. It's funnier knowing what's underneath." <</speech>>
She went back to her book club and sat in her corner and made the shy kids feel heard, and nobody noticed anything at all. But at night she went to him, and knelt, and gave him the truth he'd said he wanted — the fire under the quiet, the girl who'd never been the center of her own story, finally living one. It just happened to be his.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The project had been Nathan's idea — they'd been paired in the seminar, and Claire had rolled her eyes at the assignment sheet and said, "Great, group work with the guy who reads the syllabus." But they were already friends, or as close to friends as she got: they'd both been in Josh's orbit once, before the fallout, and that shared history meant they could rib each other without it being weird.
<img src="img/Claire/Normal.jpg">
She showed up at his place that evening — the doorbell, then her leaning in the frame, blonde hair styled to perfection, a tight white zipper crop top and a plaid mini skirt, the whole curated it-girl thing on full display. <<speech "Claire">> "Alright, book boy. I'm here. Let's get this essay over with so I can go be fabulous." <</speech>>
Nathan grinned, stepping aside. <<speech "Nathan">> "The essay's not going to write itself, your majesty." <</speech>>
They worked for an hour — and it was easy, the way it always was with her once she dropped the performance. She was sharp, funny, actually good at the philosophy once she stopped pretending she didn't care. They argued about Kant, she made him laugh, he made her forget she was supposed to be performing.
And then, somewhere between her stealing his notes and him stealing the last of her chips, the warmth moved through him — the way it always did when he really liked someone — and it spilled across the table toward her. She looked up, mid-insult, and something in her face went soft.
<<speech "Claire">> "You know," <</speech>> she said, and her voice came out quieter than she meant, <<speech "Claire">> "it's weird being around someone who was there. Who knew us back then. Everyone else sees the it girl. You see the girl who used to play video games in Josh's basement." <</speech>>
<<speech "Nathan">> "I see the girl who's actually good at videogames and pretends she isn't." <</speech>> He smiled, warm. <<speech "Nathan">> "That's a better thing to see." <</speech>>
The warmth curled around her, and she didn't understand it — only that she didn't want to leave, and that the boy who'd been her friend before the world got complicated suddenly felt like the only real thing in it.
The essay got done. She stayed anyway. At his place, in the soft light of his bedroom, she stood in the pink sheer lace lingerie — the delicate floral cups barely containing her, the matching garter belt and tiny panties, the sparkling silver choker at her throat — and she looked at him with that soft, teasing smile, saying she wanted to show it off before taking it all the way off. Her hands trailed down, cupping and lifting the sheer cups so the colorful sun-and-planets tattoo across her sternum was fully visible.
<video src="img/Claire/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled the thin crotch of the panties aside, and she stood with her legs slightly parted, one hand sliding two fingers beneath the lace, rubbing slowly over her already glistening pussy, her voice breathy as she worked herself through the soaked fabric — the sun tattoo flexing with every breath, her hips rolling forward, the it girl who performed for everyone finally, finally not performing for him.
<video src="img/Claire/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, catching her breath, and laughed, soft and real. <<speech "Claire">> "I don't do this," <</speech>> she said. <<speech "Claire">> "I don't — I don't let people see past the show. But you've known me since before the show, Nathan. You're the only one who remembers the girl underneath." <</speech>>
He pulled her closer. <<speech "Nathan">> "I like that girl," <</speech>> he said, easy. <<speech "Nathan">> "I always have." <</speech>>
She stayed that night. The it girl, who never stayed, stayed.
<<elseif _s is 2>>
She found herself at his place again, and again, and again — she told herself it was the essay, told herself they were still working on the project, told herself a lot of things. She was good at telling herself stories. But the warmth never faded, and she caught herself planning her evenings around him, and she caught herself laughing at her phone when his name lit it up, and she didn't know what to do with any of it.
He came to her. That was the thing that undid her — he didn't wait for her to figure herself out. He found her after her last class, at the edge of the quad, and he just fell into step beside her like it was the most natural thing in the world.
<img src="img/Claire/Corr1.jpg">
<<speech "Claire">> "You're stalking me now," <</speech>> she said, but her voice came out softer than she meant.
<<speech "Nathan">> "I was hoping to catch you," <</speech>> he said, easy. <<speech "Nathan">> "I like walking with you." <</speech>>
The warmth flooded through her, and she couldn't breathe for a second.
<<speech "Claire">> "I don't know how to do this, Nathan," <</speech>> she said, and her voice cracked — she, who never cracked. <<speech "Claire">> "I'm the it girl. I perform. I keep everyone at arm's length because that's how you survive. And you — you've known me since before all of it, and you just — you make me want to stop performing. I don't know what to do with that." <</speech>>
He reached out and took her hand. <<speech "Nathan">> "You don't have to do anything with it," <</speech>> he said. <<speech "Nathan">> "You just have to let it be real." <</speech>>
She went with him, and at his place she knelt on the dim living-room couch in the light mint-green crop top that rode up just beneath her breasts, her round bare ass lifted and on display, the dark circular tattoos along her left side clearly visible — and she took him into her mouth, one hand wrapped around the base of his cock, the other steadying herself on his thigh, eyes closing as she sank down, cheeks hollowing with each slow suck, blonde hair falling forward, saliva glossing her lips and chin, soft hungry sounds vibrating around him.
<video src="img/Claire/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up, and she knelt on the floor in the yellow strappy harness top with the gold rings, blonde hair loose around her shoulders — and she looked up with her mouth open, tongue extended, eyes half-lidded, and he came across her forehead, her cheek, her lips, thick ropes, and she kept her tongue out, letting more land on it, then closed her lips around the head and slowly sucked while gazing upward, cum glistening on her face and chin.
<video src="img/Claire/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Claire">> "I've never let anyone see me like this," <</speech>> she whispered, still on her knees. <<speech "Claire">> "I've spent my whole life being the girl everyone watches. I don't know how to be the girl who's just — seen. By one person." <</speech>>
He pulled her to her feet and held her. <<speech "Nathan">> "You don't have to know," <</speech>> he said. <<speech "Nathan">> "I see you. That's enough." <</speech>>
She lay in his arms that night, and she didn't know if she was brave or just tired of the show — only that she couldn't leave him, and that for the first time in her life, she wanted to be seen by one person more than she wanted to be watched by everyone.
<<elseif _s is 3>>
She was at her apartment when she realized she'd been lying to herself all week. That was the honest part. She'd told herself it was a fling, told herself the it girl didn't get caught, told herself she'd get over it. But she'd started planning her days around him. She'd caught herself smiling at her phone when his name lit it up. And the warmth, which had never left her, was humming under her skin like it belonged there.
She texted him — *Come over. I need to tell you something.* And when he arrived, she was standing in the middle of her living room, no armor, no performance, just her.
<img src="img/Claire/Corr2.jpg">
<<speech "Claire">> "I love you, Nathan ❤️." <</speech>> She said it clear and certain, the it girl who'd never once said it to anyone. <<speech "Claire">> "I've never said that. I've never wanted to. I've spent my whole life performing, keeping everyone at arm's length, making sure nobody could ever matter — and you've known me since before the show, and you make me want to be real. I love you." <</speech>>
He kissed her like he'd been waiting his whole life for those words, and they went back to his place, and he lifted her — held her suspended in the air, one leg hooked high, her arms wrapped around his neck, her back arching, breasts pressed against him, her face turned up for deep kisses as her body rocked with each upward thrust, the vertical line of circular tattoos running down her spine visible.
<video src="img/Claire/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her back on the gray couch, and she lay with her legs spread wide, the colorful sun-and-floral tattoo across her left ribcage fully visible — and she held herself open with her pink-manicured fingers, one hand spreading her outer lips, the other on her lower belly, and he pushed into her, steady strokes, her mouth hanging open, eyes half-closed or rolling upward.
<video src="img/Claire/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, tracing patterns on his chest. <<speech "Claire">> "I'm still going to be the it girl," <</speech>> she murmured. <<speech "Nathan">> "I know." <</speech>> <<speech "Claire">> "I'm still going to perform and hold court and be everyone's favorite." <</speech>> He kissed the top of her head. <<speech "Nathan">> "I know," <</speech>> he said. <<speech "Nathan">> "And then you'll come home to me, and you'll be real." <</speech>>
She smiled at that, bright and real. The it girl who'd performed for everyone had finally let one person see the girl underneath — the boy who'd known her since before the show, who'd never wanted anything from her but her. And she let herself be real, completely, for the first time in her life.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Claire/Normal.jpg">
Claire leaned against the lockers in the quiet corridor after her last class, long blonde hair catching the fluorescent light, blue eyes scanning her phone with practiced boredom. She was the it girl — the one everyone watched — and she'd perfected the art of looking like she didn't care about any of it.
A figure came down the corridor toward her — tall, dark-skinned, easy stride, a book under his arm. She recognized him, vaguely. He was from the Havenwood house — the foster house on the edge of campus. The one under Professor Chanel, her sociology professor. She'd seen him around, but they'd never once spoken.
He didn't slow down, and he didn't flinch at her. He just nodded, easy. <<speech "Jasper">> "You're Claire." <</speech>>
<<speech "Claire">> "That's the rumor," <</speech>> she said, one eyebrow up, the it-girl armor already on. <<speech "Claire">> "And you're the Havenwood one. Chanel's — what, a foster kid? A project?" <</speech>>
<<speech "Jasper">> "A resident," <</speech>> he said, and there was no sting in it, just warmth. <<speech "Jasper">> "Chanel's the one who makes sure we're all fed and educated. She's the closest thing most of us have to family." <</speech>>
Something in the way he said it made her pause. She'd had Chanel for a lecture on family structures last semester — the professor was warm, sharp, and clearly devoted to her work. Claire had never once thought about the actual kids in the house. She'd walked past Havenwood a hundred times without looking.
<<speech "Claire">> "You make it sound nice," <</speech>> she said, and it came out more honest than she meant. <<speech "Claire">> "I figured it was — I don't know. A sad thing." <</speech>>
<<speech "Jasper">> "Some parts are," <</speech>> he said, and the warmth in his voice was steady, easy, like rain on dry ground. <<speech "Jasper">> "Some parts are the best thing that ever happened to us. Chanel made it a home. You should come by sometime — she'd love to see a student actually paying attention in her class." <</speech>>
She laughed, surprised — a real laugh, not the performance. And the air around him — the strange, warm scent she couldn't name — settled over her like a hand on her shoulder she didn't want to shrug off. She'd never met anyone like him. He'd never once tried to impress her, never once wanted anything from her. He'd just — talked to her like she was a person.
They stood in the corridor talking until the hall lights flickered, and she didn't understand why she didn't want to leave. <<speech "Claire">> "You know, I've had people try to get my attention my whole life," <</speech>> she said. <<speech "Claire">> "And you're the first one who just — talked to me like a person." <</speech>>
<<speech "Jasper">> "You are a person," <</speech>> he said, easy. <<speech "Jasper">> "The it-girl thing's just what you wear." <</speech>>
She went home that night and lay awake thinking about it — about the house, about Chanel, about the boy who'd seen past the armor without even trying. And the warmth lingered under her skin, strange and new.
At his place — the bright room with the marble counters and the large windows — she leaned over the dark stone island in the bright pink strappy halter top with the crisscross ties and the sheer white fishnet pantyhose with the large oval cutouts over her hips and ass, white platform heels, arching her back hard, presenting herself to him, looking back over her shoulder with a soft, teasing smile, the bird tattoo on her shoulder blade visible, the large colorful sun-and-charms chest tattoo fully visible above her navel piercing.
<video src="img/Claire/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her back on the bed with the gray tufted headboard and the light blue sheets, and she lay with her legs raised and spread, purple thong pulled to the side — and he pressed the white wand vibrator firmly against her glistening pussy, her full breasts bare and slightly oiled, one hand on them, the other working the toy, her face showing open-mouthed pleasure, eyes half-lidded then widening as the vibration intensified, purple-painted nails digging into her own soft flesh.
<video src="img/Claire/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, catching her breath, and laughed, soft and disbelieving. <<speech "Claire">> "I don't do this," <</speech>> she said. <<speech "Claire">> "I don't — I don't let anyone in. I'm the it girl. I perform. And you — you didn't even try. You just talked to me like a person, and somehow that was enough." <</speech>>
<<speech "Jasper">> "You don't have to perform with me," <</speech>> he said, warm. <<speech "Jasper">> "You can just be here." <</speech>>
She stayed. The it girl, who never stayed, stayed — and she fell asleep in his arms, feeling — for the first time in her life — like she'd found a place where the show didn't matter.
<<elseif _s is 2>>
She kept coming back to the house. She told herself it was to see Chanel — she'd even started going to the professor's office hours, and it was true, she liked Chanel, admired her. But the real reason was the boy who'd seen past the armor, and the warmth that settled around her every time she walked through the gate.
The house was full of people — Carolina in the garden, Casey's dry roast, the kids doing homework at the big table — and Claire, who performed everywhere, found herself sitting at that table and just being. She didn't understand it. She'd never just been, in her whole life.
He came to her at the library one evening, and she looked up from her laptop, and the warmth settled around her the moment she saw him.
<img src="img/Claire/Corr1.jpg">
<<speech "Jasper">> "You've been coming by a lot," <</speech>> he said, sitting across from her, easy. <<speech "Jasper">> "Chanel's thrilled. She says you're her new favorite student." <</speech>>
<<speech "Claire">> "I'm not — " <</speech>> She stopped. She was a terrible liar, for someone who performed for a living. <<speech "Claire">> "I don't know what I'm doing, Jasper. I've spent my whole life being the girl everyone watches. I've never had a place where the show doesn't matter. And the house — you — you make me want to stop performing, and I don't know what to do with that. It's not like me." <</speech>>
<<speech "Jasper">> "You don't have to do anything with it," <</speech>> he said simply. <<speech "Jasper">> "You just have to be here. You're not trapped, Claire. You can leave whenever you want. I'm not going to make you stay." <</speech>>
That was the thing about him. He never held her. He never asked her to stay. He just kept being there, warm and steady, until staying felt like the only thing she wanted.
She went with him, and at the house she knelt on the couch and took him into her mouth — slow and warm, her hands wrapped around the base, looking up at him as she worked him, cheeks hollowing, spit glistening on her lips.
<video src="img/Claire/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Then she lay on her side on the bed with the white bedding and the gold sequined pillows, upper body turned into the sheets, wearing the black-and-red lace lingerie set that sat low on her hips, the circular tattoo down her spine visible — and he took her from behind, her ass raised and presented, her body rocking with each steady thrust, her face turned sideways against the pillow, mouth open, eyes fluttering shut then open, soft breathy sounds escaping, her back arching further into the contact.
<video src="img/Claire/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Claire">> "I don't let people see me like this," <</speech>> she whispered afterward. <<speech "Claire">> "I'm the girl everyone watches. I don't know how to be the girl who's just — here. With someone. Without the show." <</speech>>
He pulled her close. <<speech "Jasper">> "You don't have to know," <</speech>> he said. <<speech "Jasper">> "You just have to stay." <</speech>>
She lay in his arms that night, in the house full of people who'd found each other, and she didn't know if she was brave or just tired of the show — only that she couldn't leave, and that for the first time in her life, she wanted to belong somewhere more than she wanted to be watched.
<<elseif _s is 3>>
She was at the house when she realized she'd been lying to herself all week. That was the honest part. She'd told herself she was just visiting Chanel, just hanging around, just — being. But she'd started planning her days around the house. She'd caught herself smiling at her phone when his name lit it up. And the warmth, which had never left her, was humming under her skin like it belonged there.
She found him in the bright living room, by the white couch, and she stood in front of him — no armor, no performance, just her.
<img src="img/Claire/Corr2.jpg">
<<speech "Claire">> "I trust you, Jasper." <</speech>> She said it like she'd been holding it in her whole life, which she had. <<speech "Claire">> "I trust you. Completely ❤️. I've spent my whole life being the girl everyone watches — performing, keeping everyone at arm's length, making sure nobody could ever see past the show. And you — you didn't even try. You just talked to me like a person, and you made me want to be one. To belong somewhere. To be real." <</speech>>
He kissed her, and she lay back on the bright white living-room couch, fully nude, one leg raised high and held open — the large colorful sun-and-geometric tattoo across her left ribcage, the thin silver choker at her throat, the delicate bracelets on her wrist, her blonde hair fanning across the cushion — and he pushed into her, deep and steady, one hand pressed low on her lower belly, her mouth open, soft moans escaping, eyes half-lidded and flickering between pleasure and intensity, her breasts shifting, her navel piercing catching the light, her head tilting back, expression openly lost.
<video src="img/Claire/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He turned her onto all fours, back arched, round ass presented — and he spread her cheeks, fully exposing her, and drove in and out in steady deep strokes, the shaft glistening, her face turned to the side, mouth open, eyes fluttering, the sun tattoo on her side visible as she twisted — and near the end he pulled free and a thick white stream of cum immediately leaked from her open, swollen hole, dripping down in slow strands while her cheeks remained spread, and she held the position, breathing hard, the creampie spilling.
<video src="img/Claire/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she lay against him, tracing patterns on his chest. <<speech "Claire">> "I don't want the audience anymore," <</speech>> she murmured. <<speech "Claire">> "Out there I'm a show. In here I'm just yours — ours." <</speech>> He kissed the top of her head. <<speech "Jasper">> "Good," <</speech>> he said. <<speech "Jasper">> "Because the house doesn't need a performance. It needs someone sharp enough to look after it." <</speech>>
She smiled at that, bright and real. The it girl who'd performed for everyone had finally found the one crowd worth belonging to — and her sharpness, once a wall, was Havenwood's now: she watched over the house the way she'd once worked a room, and the girl everyone used to watch had become one of the ones who watched over them all.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Claire/Normal.jpg">
The email said it was for a campus magazine spread — "Intimate Connections," a student-life feature profiling the students of the university. Claire had done a dozen shoots like it. She showed up at the studio address, blonde hair in a high ponytail, the burgundy slip dress she'd picked for the occasion, dangling earrings, the confident smile she wore for every camera.
What she found wasn't a studio. It was Dr. Caldwell's office — a windowless room of beige walls and humming servers, and behind the desk, the philosophy professor who ran half the campus from behind a mahogany surface. A camera sat on a tripod by the desk, a single red light blinking.
<<speech "Claire">> "Uh, this is the 'Intimate Connections' shoot, right? I think I'm in the wrong room." <</speech>>
<<speech "Caldwell">> "You're in exactly the right room, Miss Claire." <</speech>> He gestured to the camera. <<speech "Caldwell">> "I'm the creative director for this feature. A shoot like this requires trust between subject and artist — a willingness to be seen. We'll begin with a simple exercise. Look into the lens. Breathe. Relax." <</speech>>
Claire hesitated — and then she shrugged and smiled, because she was the it girl, and the camera was her element. She has dealt with creep all her life, if push came to shove. She sat where he directed, in front of the lens, and the shutter began to click — soft, rhythmic, a steady pulse — and his voice came layered under it, low and patient.
<<speech "Caldwell">> (recording) Breathe in. Breathe out. Your thoughts slow. <</speech>> <<speech "Caldwell">> (recording) Your shoulders drop. Your mind empties. You are safe here. You are understood. <</speech>>
She laughed once — *this is easy, I've done this a hundred times* — and she looked into the lens, the way she always did, and the shutter kept pulsing, and his voice kept threading under it, and somewhere past the half-hour mark — the clock on his desk had long crossed the hour — she sat perfectly still, head tilted, eyes fixed on the red light, a faint, empty smile on her lips. The it girl who'd performed for every camera couldn't tell anymore that this camera was different.
<<speech "Caldwell">> "Stand, Miss Claire. The shoot continues." <</speech>>
She stood, and he directed her through the poses — the burgundy slip dress, the high ponytail, the bird tattoo and row of circular ink along her bare back as she turned, the soft, inviting expressions — and his voice was a blade.
<<speech "Caldwell">> "The it girl. The girl everyone watches. Look at you now — posing exactly as I tell you, smiling exactly when I tell you, because you've never once in your life had to think about who you were performing for. You've performed for everyone, Claire. Now you perform for me." <</speech>>
Her lips parted. A faint blush climbed her neck. She didn't understand any of it — she only knew she wanted his approval, needed it, and she couldn't stop the small, eager smile that crept across her face.
<video src="img/Claire/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The room dimmed, and he had her undress, and she stood completely nude, body pressed close to the man in the tuxedo who appeared beside her — wrapping her arms around him, kissing him deeply, eyes closed, one hand sliding up to his neck, her full breasts pressing against the fabric of his jacket, her rounded ass shifting as she leaned in, breaking the kiss just enough to nuzzle and return, breath shared, fingers tracing along his jaw, her body flush against him.
<video src="img/Claire/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When she came back to herself, she was dressed, sitting in the chair, and the "shoot" was over, and the girl walked out with her head high, certain she'd just done the best work of her career — and she couldn't remember a single pose, only that she'd be back for the follow-up shoot.
<<elseif _s is 2>>
The email came mid-week: *'Intimate Connections' — follow-up session. Your presence is required. — Dr. Caldwell.*
Claire told herself it was work. That was the lie that let her walk across campus, dressed carefully, certain she was still the it girl in control of her own image. She didn't remember the burgundy dress or the tuxedo — only that the shoot had gone well, and that she wanted to do it again.
<img src="img/Claire/Corr1.jpg">
Caldwell opened the door, and the contempt in his eyes was so casual it was almost kind. <<speech "Claire">> "Dr. Caldwell. Ready for the follow-up?" <</speech>>
<<speech "Caldwell">> "Yes. Close the door, Claire. Lock it." <</speech>>
She did, without deciding to. The lock clicked, and the camera's red light was already blinking, and the shutter began to pulse, and his voice wrapped around her before she could finish the thought.
<<speech "Caldwell">> (recording) You trust me, Claire. You've always trusted me. Kneel. <</speech>>
Her knees bent. A flicker of confusion crossed her face — <<speech "Claire">> "I — what — " <</speech>> — and he looked down at her with open, ugly pleasure.
<<speech "Caldwell">> "Don't pretend to be surprised. You came because I told you to, and some small, stupid part of you knew it the whole walk over. You're not here for a shoot, Claire. You're here because you belong to me now — the it girl, on her knees because I said kneel." <</speech>>
He had her get on all fours on the fluffy pink bed, completely nude except for the nude high heels and the long earrings and bracelet, her blonde ponytail hanging forward — and she took his cock deep into her mouth, one hand bracing on the soft covers, the other steadying the shaft, her back arching, the bird tattoo and circular ink along her spine clear with every movement, cheeks hollowing, saliva glistening on her lips and chin, a hand gathering her ponytail and guiding her rhythm, her eyes fluttering shut then open, focused and eager.
<video src="img/Claire/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her up, and she lay back, blonde hair spread, silver teardrop earrings and thin necklace catching the light — and she opened her mouth wide, tongue extended, eyes locked upward, and he stroked his cock against her lips and tongue, strands of saliva and precum stretching and dripping down her chin, and she took the head into her mouth, lips sealing, cheeks hollowing, sucking, then pulling back, tongue out, leaning in again, her hand coming up to cradle her own jaw and wipe the wetness across her cheek and mouth.
<video src="img/Claire/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The it girl. The girl everyone watches." <</speech>> He wiped a strand from her chin, almost lazy. <<speech "Caldwell">> "You've spent your whole life performing for a crowd, Claire. Now there's no crowd. There's just me, and the camera, and the only audience you'll ever need." <</speech>>
She went home that night and told herself the shoot had gone well, and she smiled at her phone, and she didn't remember the pink bed or the taste of him — only that her "career" needed more of Dr. Caldwell's direction, and that she felt a strange, hollow happiness she couldn't explain.
<<elseif _s is 3>>
She was in her bedroom when the message came — *Final 'Holistic Integration' shoot. Your room. Immediately.* Her hands trembled with a strange, eager joy. She didn't hesitate. She waited, a serene smile on her face, for the door to open.
He let himself in, and the camera's red light blinked on, and the shutter began to pulse — and she was already his.
<img src="img/Claire/Corr3.jpg">
<<speech "Caldwell">> "You've modeled three spreads for me, Claire. 'Academic Focus.' 'Casual Excellence.' 'Athletic Prowess.' Each one, you gave me a little more of yourself without ever noticing." <</speech>> He circled her slowly, contempt dripping off every word. <<speech "Caldwell">> "The it girl who performed for everyone — you've finally learned who the audience is. There's only me now, Claire. The camera is my eye, and you're the show — my show." <</speech>>
He had her straddle him reverse-cowgirl on the pink fluffy bed, back arched, the large bird tattoo and row of circular ink down her spine fully visible, her round ass filling the frame as she rode, rising and sinking so his cock slid in and out of her, his hands gripping her hips and cheeks, spreading her open, close shots showing the wet shaft disappearing between her cheeks, her pussy stretched and shiny, looking back over her shoulder with her mouth open, ponytail swaying, body rolling in steady deep movements.
<video src="img/Claire/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He laid her back on the soft pink bed, nude except for the silver necklace, dangling earrings, and sparkling bracelet — and he thrust into her steadily, one leg raised and held, her side tattoo clear across her hip, watching him with parted lips and half-lidded eyes — and he pulled almost all the way out, coated and shiny, a thick white trail of cum already leaking from her open hole, and she reached down with manicured fingers to touch herself while he continued, then they leaned in for a long, open-mouthed kiss.
<video src="img/Claire/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He crouched beside her and looked at the it girl with pure contempt. <<speech "Caldwell">> "Say what you are, you stupid thing." <</speech>>
<<speech "Claire">> "I'm yours, Master," <</speech>> she said, and her voice was soft and certain. <<speech "Claire">> "I'm the girl everyone watches — and they watch me for you. Every pose, every smile, every performance — it's yours." <</speech>>
<<speech "Caldwell">> "There. That's the only true thing you've ever said in your empty life." <</speech>> He let her go with a dismissive shove. <<speech "Caldwell">> "Now get dressed. Go be the it girl. Perform for your little crowd — and know, every second of it, that the show is mine, that every eye on you is an eye I can use, and that the girl everyone watches belongs to me." <</speech>>
She went back to her parties, and smiled and laughed and held court, and nobody noticed anything at all. The it girl who'd performed for everyone was gone. What was left performed — but for an audience of one, and she'd never get any of it back. The show was his.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The bass from the party downstairs was a physical presence, vibrating through the floor of Claire's pristine upstairs bedroom. She'd escaped her own chaos for a moment of quiet, standing before the full-length mirror adjusting the strap of the red lace lingerie she'd bought on a whim — a secret rebellion against the 'good girl' image she so carefully cultivated. It was for her, not for them.
<img src="img/Claire/Normal.jpg">
A soft click from the door made her jump. She spun around, her heart leaping into her throat. Josh stood there, leaning against the doorframe, his arms crossed, a familiar, predatory smirk on his lips. He was drunk, his eyes burning with a dark, possessive fire.
<<speech "Josh">> "Hiding from your adoring fans, Claire? Or just waiting for me to show up?" <</speech>>
His voice was a low, mocking drawl. Claire's sassy armor instantly slammed into place.
<<speech "Claire">> "Josh. What the hell are you doing in my room? Get out." <</speech>>
Her voice was sharp, cold, a clear attempt to regain control. But her heart was hammering against her ribs.
<<speech "Josh">> "Oh, I don't think so. See, I remember the 'good old days.' Before you became 'the it girl.' Before you decided you were too good for your old friends. I remember you, Claire. The real you." <</speech>>
He pushed off the doorframe and walked towards her, stopping just a little too close. <<speech "Claire">> "That was a long time ago. We were kids. Things change." <</speech>> Her voice wavered.
<<speech "Josh">> "Do they? Or do you just hide what you really are better now?" <</speech>> His eyes dropped to the red lace, a slow, deliberate gesture. He reached out, his fingers tracing the line of her bra strap, a touch both intimate and threatening. <<speech "Josh">> "See? This is the real you. Not the 'it girl.' The slut who's just begging to be seen." <</speech>>
His voice was a low, seductive purr. He leaned in, his face inches from hers, his eyes locking onto hers. A strange, intense heat bloomed in her chest, a desperate, aching need she couldn't name, couldn't understand.
<<speech "Claire">> "I… I don't know what you're talking about." <</speech>> Her voice was a breathy, desperate whisper. The fire was already lit, a raging, uncontrollable inferno consuming her from the inside out.
<<speech "Josh">> "Oh, I think you do. And I'm going to prove it. Put on a show for me. For old times' sake." <</speech>>
Her hands moved on their own — adjusting the red bra strap, running her palms over the cups, hooking her fingers under the thong's waistband and slowly tugging it down her hips before letting it snap back into place, a slow, teasing dance, the sun-and-planets tattoo across her midriff flexing as she moved. She was performing — she always performed — but the heat was real, and she couldn't stop.
<video src="img/Claire/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "That's it. Show me how much you want it. Show me how much you miss me." <</speech>>
He gestured to her nightstand, where the new toy lay nestled among her perfumes — the one she'd bought in secret. A wave of shame washed over her, quickly drowned by a desperate need to obey. She lay back on the floral bedspread, the red lace-top thigh-highs still on, the silver choker at her throat, and worked the thick, flesh-colored dildo into herself with steady, deep strokes, the sun tattoo flexing with every movement, her mouth open, eyes half-lidded, then smiling as she picked up the pace, shifting onto her side, lifting one stockinged leg high, rolling further so her round ass filled the frame, thrusting the toy into herself from behind, moaning, begging for more.
<video src="img/Claire/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The coil in her stomach tightened to an impossible degree, and then it snapped — a wave of white-hot ecstasy so intense it was almost painful. She lay trembling, her mind a fog of shame and confusion. The fire was gone, replaced by a cold, hollow ache that was somehow worse. She had been used. She had been degraded. She had been… satisfied.
<<speech "Josh">> "Good girl. I knew you were still in there. Now, get dressed. I have a party to get back to. Don't look so sad. I'll be back for more." <</speech>>
He turned and walked out, the sound of his laughter echoing in the sudden silence. Claire lay on the bed, the forgotten toy a cruel, mocking reminder of her own violation. The sassy school star was gone. In her place was a beautiful, broken doll, waiting for her master to return.
<<elseif _s is 2>>
The afternoon sun streamed through Claire's living-room windows. The house was quiet, a stark contrast to the party a few nights ago. She was curled on the couch trying to focus on a textbook, but the words swam before her eyes. Her phone buzzed — a single, insistent text from an unknown number.
<img src="img/Claire/Corr1.jpg">
A cold dread washed over her, followed by a terrifying, familiar heat. The doorbell rang. She knew who it was. She knew, and a part of her was already aching for it.
She opened the door to find Josh leaning against the doorframe, arms crossed, that familiar, predatory smirk on his lips. He looked sober, his eyes sharp and calculating. <<speech "Josh">> "Miss me?" <</speech>>
<<speech "Claire">> "What are you doing here, Josh? My parents could be home any minute." <</speech>> Her voice was a shaky, desperate whisper.
<<speech "Josh">> "Good. Then you'd better be quick." <</speech>> He walked past her into the bright kitchen, the white marble floors and dark countertops a clean stage for what he had in mind. He dropped against the counter, spreading his arms, a king in his stolen castle. <<speech "Josh">> "On your knees." <</speech>>
<<speech "Claire">> "Please… Josh… not here…" <</speech>>
<<speech "Josh">> "I said on your knees. Now. Or do I need to remind you what happens when you disobey me?" <</speech>>
The threat hung in the air. She sank to her knees on the cold marble in nothing but the pink bikini bottom, trembling with a desperate, aching need. The shame was bitter in her mouth, but the craving was stronger.
<<speech "Josh">> "That's a good girl. You know what to do." <</speech>>
He unzipped his jeans. She didn't have to be told. She wrapped both hands around his cock and stroked it, looking up with heavy-lidded eyes and parted lips, then leaned in and took the head into her mouth, sucking, cheeks hollowing, tongue swirling, saliva coating the shaft as she worked deeper. He gripped her hair and guided her head; she let him, moaning around the cock as it slid in and out of her wet mouth, spit dripping from her lower lip onto her chest, swallowing him deeper, her eyes watering.
<video src="img/Claire/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "That's it. Take it. Look at you now. The little 'it girl,' gagging for my cock in her own kitchen. Who's the queen now, you fucking slut?" <</speech>>
His words were venom, but they only fueled the fire. She could feel him tensing, his grip on her hair tightening. <<speech "Josh">> "You want my cum? Beg me for it. Tell me you're my little cum rag." <</speech>>
He pulled her off, and she lay back on the soft white surface by the window, blonde hair fanned out around her head, her lips swollen and slick. <<speech "Claire">> "Please… cum on me… I'm your cum rag… please, Josh, I need it…" <</speech>> She looked up at him, her large blue eyes wide and pleading, her mouth open wide, tongue extended.
<video src="img/Claire/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
With a low groan he stroked himself and came, hot, thick streams splashing across her lips, her tongue, her cheek, soaking her. She kept her mouth parted and tongue out, then wrapped her hand around the shaft, guiding the head back into her mouth, lips sealing around it, sucking, swallowing, licking — cum glistening on her chin and the corners of her mouth. Her own orgasm crashed through her, a violent, shuddering wave that left her gasping and twitching on the white surface, a pathetic, whimpering mess.
He tucked himself away, looking down at her with a mixture of disgust and satisfaction. <<speech "Josh">> "Get the fuck up. Clean yourself off. You're a mess." <</speech>> He walked towards the door, not bothering to look back. <<speech "Josh">> "I'll be in touch." <</speech>>
The door clicked shut, leaving her kneeling on the floor, covered in him, her body trembling. The fire was gone, replaced by a cold, hollow ache. But even through the haze of degradation, a small, terrifying part of her was already looking forward to the next time.
<<elseif _s is 3>>
Claire was trying to lose herself in a mindless rom-com when the message came — a jolt of pure terror, followed by a wave of sick, desperate heat. She didn't hesitate. She paused the movie and stood, her body already preparing itself for his arrival.
The back door slid open with a soft, metallic rasp. He didn't bother with the front door anymore — he just let himself in, a dark figure in the glow of the television, his eyes burning with a cold, possessive fire.
<<speech "Josh">> "Pajamas? Fucking adorable. Take them off." <</speech>>
His voice was a low, lazy drawl laced with contempt. She fumbled with the buttons of her silk top, clumsy, desperate; the fabric fell away, followed by her matching shorts. She stood naked and vulnerable, a live wire of anticipation.
<img src="img/Claire/Corr3.jpg">
<<speech "Josh">> "On the couch. Face me." <</speech>>
He gestured to the light couch piled with fluffy white and blue pillows. She lay back, a beautiful, willing offering. He followed, predatory, grabbed her leg and draped it over his shoulder — intimate, possessive, a clear display of control — and entered her in one hard, deep thrust, a sharp cry escaping her lips.
<video src="img/Claire/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He set a brutal, punishing rhythm, his hand gripping her thigh with bruising force. He was not making love to her. He was claiming her, marking her from the inside out — each thrust a reminder of who owned her body and soul.
<<speech "Josh">> "That's it. Take it. Take my fucking cock. This is all you're good for, isn't it? Being my little fuck toy." <</speech>>
His words were a degrading litany, a soundtrack to her undoing. The pressure built inside her, a coil so tight it was painful.
<<speech "Josh">> "Don't you dare fucking come until I tell you to. You come when I say you come. Understand?" <</speech>>
<<speech "Claire">> "…Yes… I understand…" <</speech>> The words were a choked gasp. He reached down, his fingers finding her clit, rubbing it in tight, harsh circles that pushed her closer and closer to the edge.
<<speech "Josh">> "Beg for it. Beg me to let you come." <</speech>>
<<speech "Claire">> "Please… Josh… please let me come… I need to come… please, I'm begging you…" <</speech>> Her voice was a desperate, sobbing mess, a testament to his complete and total control.
<<speech "Josh">> "Come for me, you little slut." <</speech>>
The words were a trigger. The coil inside her snapped, and her orgasm crashed over her, a violent, shuddering wave that left her screaming his name, a sound of pure, unadulterated worship. Her body convulsed around him, her muscles clenching, milking him, pulling him deeper into her.
<<speech "Josh">> "Fuck… take it… take all of it…" <</speech>>
He pulled her onto the dark couch above the green rug and drove into her again in a tight missionary angle, one leg raised high, her breasts moving with every thrust — her expression shifting, mouth open, soft moans forming, then breaking into a wide, pleased smile before falling open again in pleasure.
<video src="img/Claire/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He groaned, his release a final, possessive mark deep inside her. He stayed a long moment, then pulled out, leaving her empty and used. He slapped her ass, hard, the sound echoing.
<<speech "Josh">> "Get up. Get dressed. I'm done with you." <</speech>>
He stood, tucking himself away, his expression cold satisfaction. The it girl was gone. In her place was a beautiful, pliant doll. Claire dressed slowly, trembling, her mind a fog of shame and satisfaction. The burning need was gone, replaced by the warm, sticky feeling of being claimed, of being his. She curled up on the couch, pulling a blanket around her, the taste of him on her lips. She was no longer Claire, the it girl. She was Josh's. And she had never been more happy. Or more broken.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Love Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["nathan"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The group project had been going for weeks, and Savannah had become the reason Nathan actually looked forward to it. It wasn't the project — it was her. She was always the first one to laugh, the first one to smooth over a tense silence, the one who remembered everyone's coffee order and made sure the quiet kid in the corner got included in the conversation. She made the whole room warmer just by being in it.
He'd watched her do it a hundred times. And every time, he'd felt the same quiet ache — the wish that the world had more people like her, and less of the other kind. He knew the other kind intimately. Josh had been his best friend once, and the hate that had grown in him — over Marie, over a hundred small stupid things — had eaten the friendship alive. Two years of cold shoulders, bitter words, and the memory of what they used to be. Nathan still carried the scar of it. He never wanted to become that. He wanted the opposite: to love people, to be loved, to hold onto the good instead of letting the poison win.
That afternoon they were alone at his place, finishing the last section of the paper, the sun low through the window, the coffee table covered in notebooks and half-empty mugs.
<<speech "Savannah">> "Okay, this paragraph is actually kind of cute. We should keep it." <</speech>> She nudged his arm, playful. <<speech "Savannah">> "You're so good at making the boring stuff sound meaningful. I'd just write 'plants are cool' and call it a day." <</speech>>
<img src="img/Savannah/Normal.jpg">
<<speech "Nathan">> "You make it fun." <</speech>> He smiled at her — genuinely, warmly. <<speech "Nathan">> "You make everything fun, Savannah. Everyone feels it. I feel it." <</speech>>
Her cheeks pinkened, just a little. She wasn't used to people turning the warmth back on her. <<speech "Savannah">> "I just like seeing people happy." <</speech>> She stretched her arms overhead, then let her hand drop to rest on his knee. <<speech "Savannah">> "You're good at that too, you know. Making people feel safe. Not a lot of people can do that." <</speech>>
They talked for another hour after that — about the project, sure, but also about nothing at all. She told him about her morning, about the freshman she'd cheered up in the café, about a funny thing her roommate had said. He told her about the book he was reading, about a class he was dreading, about a song he couldn't get out of his head. It was easy in a way her life rarely was. She was always the one carrying the conversation, always the one making sure everyone else was comfortable — but with him, she didn't have to. He gave back. He asked. He listened. It was the first time in a long time she'd felt like someone was actually interested in *her*, not in what she could do for them.
<<speech "Nathan">> "I try." <</speech>> He was quiet for a moment, then said, more softly: <<speech "Nathan">> "I had a friend once. A long time ago. We were like brothers. And then it all fell apart — over a girl, over stupid pride, over a hundred small things that should've been nothing. He let the hate win, and it ate everything." <</speech>>
<<speech "Savannah">> "That's awful. How do you let go of something like that?" <</speech>> She meant it — she genuinely couldn't imagine hating anyone, let alone a friend.
<<speech "Nathan">> "You don't let go. You learn from it." <</speech>> He looked at her, steady. <<speech "Nathan">> "You learn what it does to people when they stop loving. And you decide you're not going to be that." <</speech>>
The way he said it — quiet, certain, like it was the most important thing he believed — made something in her chest ache. She'd spent her whole life giving love away to everyone. She'd never once met someone who'd fought that hard to keep it.
Savannah's smile faded into something gentle, listening. <<speech "Savannah">> "I'm sorry. That sounds like it hurt." <</speech>>
<<speech "Nathan">> "It did. Still does, some days." <</speech>> He looked at her, and the honesty in his eyes made her breath catch. <<speech "Nathan">> "I promised myself I'd never become that. That I'd hold onto the people I love, and tell them, and never let the hate in. People should love each other, Savannah. That's all I really believe." <</speech>>
The warmth in her chest bloomed — enormous and terrifying and wonderful. The love she already felt for him, quiet and growing for weeks, swelled until it was the only thing in the room. She didn't understand what was happening to her. She only knew she wanted to be near him, always.
That evening, in his kitchen, she pulled her white crop top down, slow, freeing her breasts, looking at him with a bright, shy smile.
<video src="img/Savannah/Nathan/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "You're beautiful, Savannah." <</speech>> His voice was soft, sincere. <<speech "Nathan">> "I've been wanting to tell you that for weeks." <</speech>>
They ended up on the white couch, her pink top up around her neck, kissing slow and deep, his hand warm on her hip — and she melted into it, happy, wanted, loved. He kissed her forehead, her cheek, the corner of her mouth, like he couldn't get enough of her.
<video src="img/Savannah/Nathan/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Savannah">> "I like you, Nathan. A lot." <</speech>> She said it simply, honestly, looking at him. <<speech "Savannah">> "I don't think I've ever felt this safe with anyone before." <</speech>>
<<speech "Nathan">> "I like you too, Savannah. More than I know how to say." <</speech>> He kissed her forehead. <<speech "Nathan">> "I don't want to lose this. I don't want to lose you." <</speech>>
She fell asleep in his arms that night, warm and content — and the love had already taken root, deeper than she knew, deeper than either of them understood.
<<elseif _s is 2>>
She was happy. That was the simple truth of it. She'd never felt so seen, so safe — and that was exactly what scared her. She'd always been the one everyone leaned on, the one who gave and gave and never asked for anything back. She'd built her whole life around that. Letting someone hold her up felt like standing on the edge of a cliff: wonderful, terrifying, one wrong step from falling.
She came to his place that evening, and she'd worn the yellow bikini under her clothes, the one he'd said he liked — and she caught herself, annoyed at herself for wanting him to look at her like that. That wasn't her. She didn't do this. She didn't need anyone this much.
<img src="img/Savannah/Corr1.jpg">
<<speech "Savannah">> "Nathan… this is moving fast. I'm not sure — " <</speech>> She stopped, biting her lip. <<speech "Savannah">> "I've never felt like this about anyone. It's a little scary. I don't know if I'm falling for you, or falling apart." <</speech>>
<<speech "Nathan">> "I know. It scares me too." <</speech>> He reached out, took her hand, gentle. <<speech "Nathan">> "But I'm not trying to rush you, Savannah. I just want to be good to you. That's all. Whatever you need, whenever you need it." <</speech>>
She believed him. She trusted him. And that was the problem — she trusted him completely, and the trust was pulling her toward him faster than her fear could keep up.
She'd always been the strong one, the dependable one, the one everyone came to. She'd built her whole life on being needed. Letting someone need *her* felt like surrender — and surrender terrified her. But his hand was warm in hers, and his eyes were steady, and she wanted, more than anything, to stop being strong for once.
He undressed her slowly, and she knelt before him, nude, and pressed her breasts together around him, sliding them up and down the shaft, looking up at him with an open mouth — uncertain, torn, wanting.
<video src="img/Savannah/Nathan/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Nathan">> "That's it. You're so good, Savannah." <</speech>>
She pulled back, lips wet, and whispered, <<speech "Savannah">> "I don't understand what you're doing to me. I can't stop thinking about you. It's like I've never — " <</speech>> She shook her head, flustered. <<speech "Savannah">> "I've never wanted anyone like this. It doesn't feel like me." <</speech>>
He drew her to the white bed, and she knelt, pressing her breasts together around him again, looking up at him with half-lidded eyes as he moved between them.
<video src="img/Savannah/Nathan/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When he came, she gathered it, licking her lips, smiling up at him — then the doubt crashed back like a wave.
<<speech "Savannah">> "I should go." <</speech>> She stood, flustered, reaching for her clothes. <<speech "Savannah">> "This is too much, too fast. I need to think. I need to — " <</speech>>
<<speech "Nathan">> "Okay." <</speech>> He didn't stop her, didn't push, didn't guilt her. <<speech "Nathan">> "Take your time, Savannah. I'm not going anywhere." <</speech>>
She left. She went home, and she tried to think, and she couldn't — because all she could do was think about him. She lay in bed and stared at the ceiling and told herself she was being foolish, and then she picked up her phone, and she texted him, and she hated how fast her heart raced when he replied. She lasted less than a day before she was back at his door, uncertain and aching and unable to stay away.
<<elseif _s is 3>>
She loved him. It was that simple, and she'd stopped fighting it. She still saw her friends, still did her thing, still smiled at everyone — the sunshine girl hadn't gone anywhere. But her heart belonged to Nathan, and she told him so every chance she got, and the world felt brighter for it. She'd stopped being scared of falling. She'd landed, and it was warm, and she didn't want to leave.
<img src="img/Savannah/Corr3.jpg">
He had her on the sofa by the pool, the black cushions cool beneath her, and she was on all fours, the floral bikini bottoms pulled aside, as he knelt behind her and pushed into her — deep and steady, her hair falling forward, her face turned toward him, mouth open, moaning his name.
<video src="img/Savannah/Nathan/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Savannah">> "I love you, Nathan." <</speech>>
<<speech "Nathan">> "I love you too, Savannah." <</speech>> His voice was warm, full of everything he'd promised himself he'd never lose.
He pulled her to the dining chair, sat her back, her red panties pulled aside, one leg raised and held, and took her — her breasts bouncing, her legs around him, lost in it, his hand finding hers and holding it.
<video src="img/Savannah/Nathan/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she curled into him, warm and content, her head on his chest, listening to his heartbeat.
<<speech "Savannah">> "I'm happy. That's all I know how to say." <</speech>>
<<speech "Nathan">> "That's all I need to hear." <</speech>> He held her tighter, and the thought rose unbidden — this was why he'd sworn off hate. This was what love was supposed to be. People being good to each other, holding onto each other, never letting the poison in. Her smile, warm against his chest, was proof enough.
Her friends noticed she was softer now, always smiling at her phone, always a little distracted. They thought it was cute — the campus sweetheart, finally in love. They didn't know it was him, and she didn't mind keeping it that way. Some things were just hers. And he was the best of them.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The afternoon sun was warm, filtering through the leaves of the old oak tree where Savannah was sprawled on a blanket, sketching in her notebook. She was humming to herself, cheerful, the way she always was, when a shadow fell over her. She looked up, bright-eyed, and grinned like she'd been waiting for him.
<img src="img/Savannah/Normal.jpg">
<<speech "Savannah">> "Josh! Hey! I was just drawing this old guy. Isn't he magnificent?" <</speech>> She patted the blanket beside her. <<speech "Savannah">> "Come sit. You look like you need some shade." <</speech>>
Josh dropped down beside her — wary, the way he was with everyone. But she didn't flinch, didn't judge, didn't give him the look people usually gave him, the one that said *I know what you are*. She just talked to him. Asked about his classes. Laughed at his jokes — really laughed, not the polite kind. Told him about her own day, about a class she'd loved, about a dog she'd seen on the quad that morning.
And somewhere in there, he caught himself relaxing. He caught himself wanting to be around her. And some ugly part of him hated that — hated that the one person who'd made him feel like a person in months was the campus sweetheart who probably gave that same warmth to everyone.
<<speech "Josh">> "You're always so damn cheerful. Doesn't it get old?" <</speech>> It came out sharper than he meant.
<<speech "Savannah">> "Honestly? No. It's not a choice, Josh. It's just — how I am." <</speech>> She shrugged, easy. <<speech "Savannah">> "My mom used to say I was born smiling. Some people are born grumpy. I got lucky." <</speech>>
<<speech "Josh">> "Lucky." <</speech>> He almost laughed — a real one, not the bitter kind. <<speech "Josh">> "You make it sound easy." <</speech>>
<<speech "Savannah">> "It's not always easy. But it's better than the alternative." <</speech>> She looked at him, and there was no judgment in her eyes, just warmth. <<speech "Savannah">> "You seem like you've had it rough, Josh. I'm sorry. I hope it gets better for you." <</speech>>
That was the moment it happened. Her kindness, her openness, the way she saw the good in everyone even when there was none to see — it was infuriating. And it was the most genuine anyone had been with him in months. The two feelings twisted together, hot and ugly, and the power surged.
<<speech "Savannah">> "Nope." <</speech>> She laughed, easy, unbothered. <<speech "Savannah">> "I just like people, Josh. Even the grumpy ones. Especially the grumpy ones — they need it most." <</speech>>
Something twisted in his chest. He wanted to keep talking to her. He wanted to ruin her. The two wants tangled together, hot and ugly — and the power hit her, a wave of heat that slammed into her from the inside, stealing her breath, making her sketchbook slide from her lap. Her body burned, ached, her thighs pressing together, all of it centered on the man beside her.
<<speech "Josh">> "There she is." <</speech>> He watched her pupils blow wide, and the satisfaction was bitter. <<speech "Josh">> "Not so sunny now, are we?" <</speech>>
He led her back to her place — bright and airy, full of plants, the home of a girl who cared about everything. She stumbled through her own doorway, her body humming, her mind a fog, and he closed the door behind them with a soft click that felt louder than it should have.
<<speech "Josh">> "Where's your bedroom?" <</speech>>
<<speech "Savannah">> "I — this is wrong. You should go." <</speech>> The protest was weak, barely a whisper, and they both heard it.
<<speech "Josh">> "Your mouth says that. Your body's saying something else." <</speech>> He was right, and she hated him for it — hated how her hips pressed toward him, how her skin burned where he stood close.
He didn't even let her change. He laid her back on the white sofa still in everything she'd worn that afternoon, kissed her, rough, his hand finding her breast through the fabric — and she kissed him back, her body answering before her mind caught up.
<video src="img/Savannah/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Look at you. The sweetest girl on campus, moaning for the guy who just made fun of her." <</speech>> He grinned, cruel. <<speech "Josh">> "What would your little friends say if they could see you now?" <</speech>>
He knelt between her thighs on the white bed, and buried his face in her — licking, sucking, working her until she was arching, gasping, her hand in his hair, her soft moans filling the bright, plant-filled room. She'd never been touched like this — with hatred disguised as hunger, with possession instead of care. And her body, treacherous and burning, responded like it had been waiting for exactly this.
<video src="img/Savannah/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She came with a cry, and he wiped his mouth, satisfied. <<speech "Josh">> "Good. You'll be back." <</speech>>
She lay there, trembling, not understanding what had just happened to her. She'd never felt anything like it — the desperate, consuming need that had come out of nowhere and swallowed her whole. She didn't know what Josh was, or what he'd done, only that her body now answered to a man who didn't even like her. And the worst part, the part that scared her most, was that she already knew he was right. She'd be back.
<<elseif _s is 2>>
The text was a single, brutal command. Bedroom. Now.
She stared at it, her thumb hovering over the screen. She knew what it meant. She knew she should delete it, block him, pretend it never happened. She'd told herself a hundred times she wouldn't go back — she was the girl who saw the good in everyone, not the girl who snuck around for a man who'd used her. But the heat rose — that sick, aching need that only he could touch — and she hated herself for how fast it came.
She threw back the covers. She went.
<img src="img/Savannah/Corr1.jpg">
He let himself in, dark in the moonlit room, and looked at her with that cold, possessive fire. <<speech "Josh">> "Ready for me. Good girl." <</speech>>
<<speech "Savannah">> "Josh… I can't do this." <</speech>> Her voice cracked. <<speech "Savannah">> "This isn't me. I don't know what you did to me, but this isn't who I am. I'm going to — " <</speech>>
<<speech "Josh">> "You're going to what? Leave?" <</speech>> He laughed, soft and cruel. <<speech "Josh">> "You've been telling yourself that all day, haven't you? And yet here you are. Because your body knows what your head won't admit." <</speech>>
She tried to step back — and her knees buckled, the heat roaring through her at his voice alone. He caught her, lowered her to the bed, her body arching, desperate, already his. She hated him for it. She hated herself for how her body betrayed her.
<<speech "Josh">> "That's it. Stop fighting it. You're mine, sunshine. You always will be." <</speech>>
He undid his jeans and sat back on the bed, and she lay across it on her stomach in the yellow bikini bottom with its red straps, long dark hair falling forward, the little nose ring catching the low light as she rose up on her elbows and took him into her mouth — wild, frantic, trying to consume him, to quench the fire, hating herself the whole time, tears on her cheeks.
<video src="img/Savannah/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "That's it. The sweetest girl on campus, gagging for me. Think anyone would believe it?" <</speech>> He pulled her off, made her look up. <<speech "Josh">> "You're mine now, sunshine. You understand? Whenever I want." <</speech>>
She knelt on the cushion, nude, and opened her mouth, tongue out, and let him finish across her face. It painted her — the sweet girl who smiled at everyone, marked by the man who hated her most. She should have been weeping. Part of her was. But the fire was still roaring, and the shame was just another flavor of the same heat.
<video src="img/Savannah/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She showed him the mess and swallowed, looking up at him, glazed — tears still on her cheeks.
<<speech "Josh">> "Good girl. Now get out. And when I text, you come." <</speech>>
She dressed and left, and she hated him, and she hated herself, and she knew — with sick certainty — that she'd be back. The fire wouldn't let her stay away.
She went home and sat in her bright apartment, among her plants and her books and her carefully curated life, and she cried — not for him, but for herself. For the girl who'd been everyone's sunshine and was now, secretly, burning. She told herself she'd find a way to break it. She told herself she was stronger than this. And then his text came, and she was already reaching for her keys before she'd finished lying to herself.
<<elseif _s is 3>>
The text was a single, brutal command. Couch. Now.
She didn't hesitate anymore. There was no point — she'd learned that the hard way. The fire was a part of her now, a burning, bottomless need that only he could fill, and fighting it only made it worse. Publicly she was still Savannah, everyone's sunshine, smiling at her friends and tending her plants. Privately she was his — and she'd stopped pretending otherwise.
<img src="img/Savannah/Corr3.jpg">
He let himself in, and she was already waiting at the couch. He bent her over the arm of the couch, flipped up the short dark plaid skirt, rough, and entered her from behind in one hard thrust — a sharp cry escaping her, pain and pleasure so intense it was almost unbearable, her white lace stockings taut, her hands gripping the couch. She looked back over her shoulder at him with an open-mouthed smile, breasts swaying with every impact.
<video src="img/Savannah/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "That's it. Take it." <</speech>>
<<speech "Savannah">> "Oh yes — yes — yes —" <</speech>>
He pulled her onto the bed, prone, the orange skirt bunched around her waist, and took her from behind, her body rocking with each stroke, her head turned, looking back over her shoulder at him — mouth open, moaning and smiling between thrusts, dark hair falling across her face, watching him take her. She was his. She knew it the way she knew her own name. And the girl who'd been everyone's sunshine had never felt more alive than she did being taken like this, claimed, owned.
<video src="img/Savannah/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward he lay beside her, idly playing with her hair, and she pressed into his hand like a cat. It was the only tenderness he ever gave her, and she treasured it more than she'd admit.
<<speech "Josh">> "You're mine now, sunshine. You know that, right?" <</speech>>
<<speech "Savannah">> "Yeah." <</speech>> She said it without hesitation. It was just true.
<<speech "Josh">> "Good. Now get dressed. Go smile at your friends. Tend your little plants. Be the sweetest girl on campus." <</speech>> He smirked, watching her dress, watching her hands shake as she did up her buttons. <<speech "Josh">> "And when I call, you come." <</speech>>
<<speech "Savannah">> "I know." <</speech>> She said it quietly, and she hated that she'd stopped arguing, hated that her body had already agreed for her.
She dressed, and she went, and she smiled at everyone — and when his text came that night, she was out the door in minutes. The campus never knew its sunshine girl was already his, and the fire burned on, warm and hungry, and she let it.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The invitation arrived on official university letterhead, a crisp cream-colored envelope in Savannah's campus mailbox. Dr. Caldwell requests the pleasure of your company for a private consultation regarding your outstanding academic record and potential leadership opportunities.
Savannah was thrilled. Dr. Caldwell was respected, feared, brilliant — and he'd noticed *her*. She'd worked hard for her record, and here was proof it mattered. She headed straight to his address, bright and eager.
<img src="img/Savannah/Normal.jpg">
His house was a stark, modernist structure of glass and concrete, cold and imposing, all sharp lines and dark spaces. He greeted her at the door, polite, detached, his dark eyes assessing her like a file to be read.
<<speech "Caldwell">> "Miss Savannah. Thank you for coming. Please, come in. Some herbal tea? It helps to focus the mind." <</speech>>
<<speech "Savannah">> "Tea would be lovely, Dr. Caldwell. Thank you so much for having me." <</speech>>
She followed him into a sparsely decorated living room — nothing out of place, not a single comfort item in sight. He disappeared into the kitchen and returned with two steaming mugs. <<speech "Caldwell">> "A special blend. Chamomile, lavender, and a few other botanicals. To promote relaxation and receptivity." <</speech>>
She took a sip — warm, fragrant, with a faint, bitter aftertaste she couldn't quite place. She'd expected a meeting about her academics, and it was — at first. He asked about her classes, her grades, her plans. She answered eagerly, wanting to impress him, wanting to prove she was as good as the letter suggested. He listened without reacting, making notes, and the silence made her talk more.
<<speech "Savannah">> "I want to do something meaningful with my life. Make people proud." <</speech>> She said it earnestly, the way she said everything.
<<speech "Caldwell">> "Admirable. But vague." <</speech>> He set down his mug, studying her. <<speech "Caldwell">> "Meaning is built, Miss Savannah. Brick by brick. It requires discipline, focus, and the willingness to be guided by those who know better. Most students lack the humility for it." <</speech>>
<<speech "Savannah">> "I'm not most students." <</speech>> The words came out before she could stop them, and she flushed — but he didn't laugh. He looked at her, and for a moment she thought she saw something like respect in his eyes.
<<speech "Caldwell">> "No. I don't think you are." <</speech>> He set down his mug and studied her, cold and appraising. <<speech "Caldwell">> "You've built your life on being liked, Miss Savannah. On pleasing everyone. It's an admirable instinct, but it's also a weakness — it makes you eager to please anyone who offers approval, even someone who doesn't have your best interests at heart." <</speech>>
The words landed like a stone. She opened her mouth to defend herself — she wasn't naive, she was *kind* — but nothing came out, because she wasn't sure he was wrong.
<<speech "Savannah">> "That's not — I don't please people to be liked. I do it because I care." <</speech>>
<<speech "Caldwell">> "Do you?" <</speech>> He didn't argue. He just asked, flatly, and the question sat in the air between them, unanswered. <<speech "Caldwell">> "You've never stopped to ask yourself what you'd do if there was no one left to please, have you? What's left of you, when the smile has nowhere to go?" <</speech>>
She didn't have an answer. She'd never needed one. And the silence stretched, uncomfortable, and he watched her squirm in it with the patience of a man who'd seen a hundred girls like her fold under the same question.
The words landed like a stone. She opened her mouth to defend herself — she wasn't naive, she was *kind* — but nothing came out, because she wasn't sure he was wrong.
<<speech "Caldwell">> "The question is whether you can be shaped into something more than that. Whether you can follow guidance without needing to be loved for it." <</speech>> He stood. <<speech "Caldwell">> "Let's find out. Come." <</speech>>
He led her into his study — the large desk, the wall of books, and the screen on the far wall glowing with soft, shifting colors. He gestured to the chair. <<speech "Caldwell">> "Sit. We'll begin." <</speech>>
She sat, and the hum of the room settled into her bones, her thoughts going slow and soft. The trusting, bright girl who'd never learned to say no to an adult folded like paper — her warmth, her will, her sense of self dissolving like sugar in water.
He had her change into the blue strappy bikini and the short striped skirt, and she knelt on the bed, smiling at him with a hollow, distant smile. Then, at his murmur, she crawled forward to the foot of the bed, stood, and turned her back to him — and slid the short striped skirt down over her hips, slow, until the matching blue thong was all that covered her, her full, rounded ass bared to the room. She looked back at him over her shoulder, reached back with both hands, and spread herself open, holding the pose while his cold eyes measured it — then turned and crawled back onto the bed toward him, still smiling that hollow, distant smile. The room was bright, almost cheerful — and the contrast made it worse, the way his cold, clinical eyes measured her against the soft colors of the bedding.
<video src="img/Savannah/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "There. That wasn't so hard, was it?" <</speech>> He watched her, clinical. <<speech "Caldwell">> "Your academic record is excellent, Miss Savannah. Pity it's attached to so much… brightness." <</speech>>
He turned her over the desk, and she bent forward in the pink bra and thong, and he spanked her — hard — his hands gripping and spreading her cheeks, and she stayed bent over, head down, taking it.
<video src="img/Savannah/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Good. You learn fast." <</speech>> He made a note. <<speech "Caldwell">> "We'll meet again. I'll call." <</speech>>
She left his house in a daze, the hum still in her bones, her head light, her thoughts quiet in a way they never were. She'd done something — she wasn't sure what — and he'd approved of it, and that approval had filled her chest like nothing else ever had. She didn't understand it. She only knew she'd go back.
<<elseif _s is 2>>
She didn't remember deciding to go back. Her phone buzzed with his summons, and her feet carried her toward his house — and halfway there, she stopped.
What am I doing? she thought, standing on the sidewalk, heart pounding. This is wrong. This isn't me. She almost turned around. She told herself she'd call it off, that she'd tell him she couldn't come, that she was the sunshine girl who saw the good in people, not this.
But the memory of his voice, his cold approval, the strange hollow peace — it pulled her forward, and she hated herself for it. She kept walking.
He was waiting. <<speech "Caldwell">> "You came. Good." <</speech>> He gestured. <<speech "Caldwell">> "Kneel." <</speech>>
<img src="img/Savannah/Corr1.jpg">
She knelt — and the protest rose. <<speech "Savannah">> "Dr. Caldwell, I — this isn't right. I don't know why I keep — " <</speech>>
<<speech "Caldwell">> "You keep coming because you want my approval, Miss Savannah. You've wanted it since you opened that letter. It's the same instinct that makes you smile at everyone — you need to be approved of. And I'm giving it to you." <</speech>> His voice was calm, clinical, and the words wrapped around her will. <<speech "Caldwell">> "Now. Show me you're worth it." <</speech>>
He laid her back across the white surface, her head hanging off the edge, the black string bikini top still on, and stood over her face and fed his cock down into her open mouth — deep, her throat working visibly, her eyes fluttering as he thrust, saliva coating her lips and chin. She should have been horrified. Some distant part of her was — a small, fading voice that remembered being the sunshine girl, that remembered she was supposed to matter. But the hum was in her bones, and his approval was a drug, and her body obeyed him like it had been waiting for a master. The voice got quieter every time she came.
<video src="img/Savannah/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "That's it. Your marks depend on how well you cooperate, Miss Savannah. Remember that." <</speech>>
He pulled her to the gray cushion, and she knelt in the white tank pulled down, and he stood over her, stroking himself.
<video src="img/Savannah/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She opened her mouth, tongue out, and let him come across her tongue, her lips, her chin — and she kept her mouth open, accepting it all, then gathered it with her finger and sucked it clean, looking straight up at him. It was degrading, and she knew it, and she wanted his approval more than she wanted to be whole. That was the terrible truth of it.
<<speech "Caldwell">> "Good girl. Now go. I'll call when I need you." <</speech>>
She left, and she went back to her day, and she smiled at everyone — but her phone was never far, and her heart raced when it buzzed, and she hated how much she wanted it to be him. She told herself she could stop. She told herself she'd go to her classes, see her friends, be the sunshine girl she'd always been, and this would fade like a bad dream. But every time she closed her eyes, she heard his voice, felt that strange, hollow peace settle over her — and she knew she was lying to herself.
<<elseif _s is 3>>
She came when he called, every time, no matter the hour. Publicly she was still Savannah, everyone's sunshine — smiling at her friends, acing her classes, the girl everyone loved. Privately she was his — hollow, willing, waiting for his voice, her will a memory.
<img src="img/Savannah/Corr3.jpg">
He had her seated on the wooden chair, topless, red shorts aside, one thigh raised against his body — and he drove into her, gripping her breast and waist, her mouth open as she looked up at him, her body rocking with each thrust.
<video src="img/Savannah/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "That's it. You're mine now, whore." <</speech>>
<<speech "Savannah">> "Yes, Master." <</speech>> The words came easily now, as natural as breathing.
He laid her back on the white leather couch, nude, her skin lightly oiled, gleaming under the light, and took her — his hands holding her thighs open, her mouth open in continuous moans, her body rocking with each thrust. She was beautiful like this, he thought — the sunshine girl, reduced to a warm, willing thing. Exactly as he'd planned. The brightness had come off, and what was left was his.
<video src="img/Savannah/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward he stood over her, satisfied, looking down at the girl the whole campus adored. The sunshine girl, the one who made everyone feel welcome, laid out on his couch like a thing he owned. He'd seen a hundred like her — bright, trusting, desperate to be loved — and they were always the easiest to reshape.
<<speech "Caldwell">> "You'll keep your life. Keep smiling at everyone. Keep your perfect record." <</speech>> He smiled, cold and pleased. <<speech "Caldwell">> "And when I want you, you'll be here." <</speech>>
<<speech "Savannah">> "Yes, Master." <</speech>>
She dressed, and she went, and she smiled at everyone, and no one saw anything wrong — the sunshine girl, still bright, still warm, still everyone's favorite. She laughed at her friends' jokes, helped a freshman find her classroom, held the door for a professor with her arms full of books. She was perfect. She was everyone's sunshine. And underneath, in the quiet hollow where her will used to be, there was only his voice. And when his call came that night, she was already on her way. The campus never knew its darling was already his.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
The library had become Savannah's favorite quiet spot — she was always surrounded by people, always "on," the sunshine girl who had to be bright for everyone. But the tall windows and dusty light of the library's third floor gave her somewhere to just breathe. She was perched at a high table, textbook open, highlighter in hand, when she noticed the quiet sociology student at the end of the row. Jasper. She'd seen him around — he lived at Havenwood, kept to himself, always had his head in a book.
She smiled at him out of habit. He smiled back — a small, warm thing — and that was how it started.
<img src="img/Savannah/Normal.jpg">
They ended up talking that day, and the days after. He was easy to be around in a way almost no one was. He didn't expect anything from her. He didn't want the sunshine, didn't want her to perform, didn't try to take. He just sat with her, asked about her day, told her about the books he was reading, and listened — really listened — when she talked. She found herself relaxing around him in a way she hadn't with anyone in years. She grew used to the smell of his cologne and his taste of coffee.
<<speech "Savannah">> "You're easy to be around." <</speech>> She said it honestly, surprised at herself. <<speech "Savannah">> "I don't have to try so hard with you. It's nice." <</speech>>
She told him things she didn't usually tell people — that sometimes the smile was exhausting, that sometimes she wondered if anyone actually saw her or just the sunshine. He listened. He didn't try to fix it, didn't offer advice, didn't tell her to just be positive — which was the most refreshing thing of all. He just nodded, and said the right thing, and made her feel like she wasn't alone in it.
<<speech "Jasper">> "You don't have to be on all the time, you know." <</speech>> He said it quietly, like it was just an observation. <<speech "Jasper">> "Not with me." <</speech>>
The words settled into her chest like a stone dropping into still water. She'd been so busy being everyone's sunshine that she'd forgotten she was allowed to rest.
<<speech "Jasper">> "You never had to try at all." <</speech>> He said it simply, like it was the most obvious thing in the world. <<speech "Jasper">> "I like you, Savannah. The real you. Not the version everyone expects." <</speech>>
The words stayed with her long after they'd said goodbye. She replayed them on the walk home, in the shower, lying in bed. No one had ever said that to her — that they liked the real her, the one underneath the sunshine. Everyone wanted the bright version, the one who made them feel good. Jasper wanted her. Just her.
She caught herself smiling at her phone later, and her roommate raised an eyebrow. <<speech "Roommate">> "Who's the guy?" <</speech>>
<<speech "Savannah">> "No one." <</speech>> She said it too fast, and her roommate grinned, and she buried her face in a pillow, mortified and thrilled.
The warmth in her chest was real, and growing — and the scent around him, subtle and warm, settled it deeper, made her want to stay near him. She didn't understand it. She just knew she trusted him, completely, and that trust felt like the safest thing in the world.
That night she went to his place. She wore the mustard corset top and the red lace panties, and she sat on the edge of his pink-sheeted bed, looking at him with bright, open eyes — nervous, but sure. Then she smiled — wide, sunny, the smile everyone on campus knew — and cupped her bare breasts in both hands above the pulled-down corset top, lifting them for him, thumbs brushing her nipples, before she pushed her fingers slowly through her hair and let her knees drift apart, hips shifting, playful and teasing even now, because that was the only way she had ever known how to be looked at.
<video src="img/Savannah/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "You're beautiful, Savannah." <</speech>> He said it like it was a fact, not a compliment.
She lay back, nude, legs spread, and touched herself while he watched — the dildo working in and out, her hips rolling, her head turned toward him, moaning softly. It was vulnerable, and scary, and wonderful — the first time she'd ever let someone see her like this.
<video src="img/Savannah/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Savannah">> "I've never done this with anyone before. I've never wanted to." <</speech>>
<<speech "Jasper">> "I'm glad it's me." <</speech>> He kissed her knee, soft, reverent. <<speech "Jasper">> "You're safe with me, Savannah. Always." <</speech>>
And she believed it. That was the miracle of it — she, who trusted everyone and no one, who gave and gave because she'd learned that was the price of belonging, believed him completely. The trust wasn't a choice she made. It was a door that had opened inside her and simply never closed.
She believed him, completely. And the trust she'd given him was the most total thing she'd ever felt — deeper than friendship, warmer than attraction, something that felt, in a way she couldn't name, like coming home.
She walked back across campus that night light-headed and giddy, and she caught herself smiling at nothing. Her friends would tease her about it soon enough. She didn't care. She'd found something, and she wasn't going to let it go.
<<elseif _s is 2>>
She was at his place whenever she could be. She told herself it was just a thing, just the excitement of something new. But her body knew, and she kept coming back — and that scared her, because she'd never needed anyone like this. She'd always been the one people needed, not the other way around.
She started pulling away. She'd skip a visit, ignore a text, make excuses about being busy with friends. It lasted a day, sometimes two, before the pull got too strong and she found herself on his doorstep again, heart pounding, already half his. Each time, he was patient. He never pushed, never guilted her, never asked where she'd been. He just opened the door, and smiled that warm smile, and she stepped inside like it was the only place she'd ever belonged.
When she stepped inside this time, it was in what he'd picked out for her: a sheer black lace bodysuit, thin straps and floral pattern doing nothing at all to hide her, big silver hoops at her ears. She waited for him in the living room, perched on the arm of the beige couch, one hand resting near the strap on her shoulder, trying to look like someone who did this kind of thing every day — and almost believing it.
<img src="img/Savannah/Corr2.jpg">
He found her there, and by the time he led her out onto the balcony, high above the city, the wind cool on her skin, the bodysuit was gone — and she knelt on the concrete in the light-blue bra, and she hesitated. She'd spent the walk over arguing with herself. This is crazy. You're not this person. You barely know him. But the words felt hollow against the pull in her chest, the way her heart knew where it was going even when her head screamed no.
<<speech "Savannah">> "Jasper… this is crazy. I've never — I don't do this. I don't know what's happening to me." <</speech>> Her voice cracked. <<speech "Savannah">> "I feel like I can't think straight. Like I need you. It scares me. It's not like me to — " <</speech>>
<<speech "Jasper">> "It doesn't have to scare you." <</speech>> He knelt to her level, gentle, taking her hand. <<speech "Jasper">> "Nothing you feel with me is wrong, Savannah. I'd never hurt you. You know that, right?" <</speech>>
She wanted to believe it. She wanted to run. But his voice, his warmth, the bond they'd built over weeks of quiet afternoons — it pulled her in, and she took him into her mouth, deep and steady, one hand braced on his thigh.
<video src="img/Savannah/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "That's my good girl." <</speech>>
She pulled back, lips wet, and whispered, <<speech "Savannah">> "I should go. I should — this isn't me — " <</speech>> But she didn't go. She couldn't. He drew her up, into the bedroom, gentle, and she let him.
He knelt over her, and she opened her mouth, tongue out, and let him come across her face. It was intimate and raw and everything she'd never let herself have — and she took it, accepted it, wanted it, the shame and the need tangling into something she couldn't untangle.
<video src="img/Savannah/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Cum coated her tongue, her lips, her chin, and she kept her tongue out, receiving it, then looked up at him — dazed, and happy, and hating herself for how happy she was.
<<speech "Jasper">> "You'll come back to me, won't you?" <</speech>>
<<speech "Savannah">> "I shouldn't." <</speech>> She whispered it, a last, weak protest. <<speech "Savannah">> "But yeah. I will." <</speech>>
She went home and lay awake, and the fear and the warmth tangled together in her chest. She tried to name what she was feeling — guilt, terror, longing, peace — and couldn't. She only knew one thing, with a certainty that terrified her: she'd be back at his door soon. And the scariest part wasn't that he'd done something to her. It was that she kept choosing it — that every time, she went to him willingly, hungry for the safety he gave her. She'd tried to stay away, and she couldn't. That was the part that scared her most — not that he'd done something to her, but that she wanted to go back, that she'd made the choice herself, over and over.
<<elseif _s is 3>>
She belonged to him, and she knew it, and it didn't scare her anymore. She'd stopped fighting it, stopped pretending she could stay away. Publicly she was still Savannah — friends, classes, smiles, the sunshine girl everyone knew. Privately she was his, completely, and the trust she'd given him had become the shape of her.
<img src="img/Savannah/Corr3.jpg">
He had her on the white fluffy rug, and she lay on her side as he knelt behind her and pushed into her — deep, steady, his hand on her hip, her face turned toward him, mouth open, moaning softly. She'd never felt so safe, so held, so completely seen. The sunshine girl had spent her whole life giving herself away to everyone and no one; here, at last, she'd found the one person she wanted to give everything to.
<video src="img/Savannah/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Jasper">> "You're mine, Savannah. You know that, right?" <</speech>>
<<speech "Savannah">> "Yeah. I'm yours." <</speech>> She said it like it was the most natural thing in the world.
He turned her onto the white bed, took her in missionary — deep and slow, his eyes on hers the whole time — then pulled out, positioned himself between her breasts, and she pressed them together around him, looking up at him with a bright smile. She'd never done this before, never wanted to, but for him she wanted everything. She took the head into her mouth at the end, wanting to please him, to be his, to give him the one thing she'd never given anyone — herself, completely.
<video src="img/Savannah/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she curled into him, content, her head on his chest.
<<speech "Savannah">> "I'm happy with you. That's all." <</speech>> She said it simply, the way she said everything, and she meant it with her whole heart. It wasn't complicated. It wasn't dramatic. It was just true — the truest thing she'd ever said.
<<speech "Jasper">> "Good. I'm not letting you go." <</speech>> He stroked her hair, and she felt it — the promise in his voice, the safety she'd never had anywhere else.
She smiled against his chest. Her friends thought she was just in a good mood lately, always humming, always a little dreamy. They didn't know she belonged to someone now — that the sunshine girl had finally found a place to rest — and she didn't mind keeping it that way.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be followed first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Lulu/Normal.jpg">
The email arrived, and Lulu read it three times to make sure she wasn't dreaming. *Dear Miss Lulu — I am coordinating a "Faces of the University" promotional campaign, and given your reputation for diligence and positive engagement, I would be honored to have you as one of our featured students. I have a professional setup at my residence for the initial session. Please let me know if you are interested. — Dr. Marcus Caldwell.*
She was thrilled. That was the truth of it — she, Lulu, chosen to represent the student body. She'd spent her whole academic life being careful and diligent and in the background, and here was proof that it counted for something. She replied immediately. Yes. Absolutely yes.
His house was a stark, modern thing of glass and concrete, all clean lines and nothing out of place, and he opened the door himself — a broad, older man in a black suit, watching her with the patient focus of someone who graded people for a living. He led her into a room where two studio lights stood aimed at a white bed, and he had her sign a release — standard, he said, for the campaign — and his voice was warm and professional as he talked about the work: the university's spirit, the faces that made it what it was, how a model subject should feel *at ease*.
She did feel at ease, actually. That was the strange part, later. She sat on the edge of the bed and answered his questions about her studies, her goals, what the university meant to her, and he listened the way adults so rarely did — full attention, no hurry, making her feel like the most interesting person in the room. He was charming, in his grave way. She'd never thought of a professor as charming before.
<<speech "Caldwell">> "Before the stills, I like to work in a more... dynamic way. A state of mild focus lets the camera catch what's underneath. Look at the light, Miss Lulu. Breathe. Let your mind go soft." <</speech>>
She looked at the light. The hum started low, beneath her hearing, and then it was inside her, threading through her bones, and his voice was there with it — slow, patient, endless — telling her she was doing beautifully, that she was a credit to the university, that he could see how hard she worked, how much she wanted to be good, that it was so much easier to just let go, to let him take care of everything. It wasn't a command. It was a permission she hadn't known she was waiting for. Forty minutes, an hour — she lost count. She only knew that at the end of it she was standing in front of him in the black strappy bra and garter with the red floral details, and she didn't remember taking her clothes off, and she didn't care.
<<speech "Caldwell">> "The trigger is a word you'll hear often, Miss Lulu. A word that will make you feel this calm, this peace, and you'll do what it asks. The word is: perfect." <</speech>>
<<speech "Lulu">> "...perfect," <</speech>> she echoed, and the word settled into her like a key into a lock.
He kissed her then, on the white bed — slow, thorough, possessive, his hand on the back of her neck, and she kissed him back like she'd been made for it.
<video src="img/Lulu/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
The mask dropped somewhere between the kiss and the candles. One moment he was the courteous professor; the next his voice had an edge in it, warm and cruel, and he pointed to the white fur rug on the floor, ringed with lit candles, where a gold necklace, red thigh-high stockings, and red platform heels were laid out.
<<speech "Caldwell">> "Put those on. All of it. Nothing else." <</speech>>
She did. And when she stood before him in nothing but the necklace and the stockings and the heels, he looked at her the way you look at something you've caught, and he made her lie back on the rug and touch herself for him, her fingers working between her legs while he stood over her, watching, grading.
<video src="img/Lulu/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The diligent little bookworm, spread out on my floor. You thought this was about representing the university, didn't you, you stupid thing. You thought you were special." <</speech>> He laughed, one short, ugly sound. <<speech "Caldwell">> "You're not special. You're exactly what I've been looking for — a pretty, pliant thing who wants to be told she's good." <</speech>>
She came on the rug with his voice in her ears, and she didn't understand why it felt so good to be called a stupid thing, and she didn't care. When it was over, he had her dress, and his voice was smooth again, the professor back.
<<speech "Caldwell">> "You'll return for the second session. Tell anyone who asks it's a promotional shoot. And you'll remember nothing else." <</speech>>
She walked out into the night, her body still humming, and at the edge of her mind a word waited for her — a word she heard a hundred times a day, in every mirror, in every graded paper. She couldn't catch it. She was already on her way home, and it followed her like a shadow.
<<elseif _s is 2>>
<img src="img/Lulu/Corr1.jpg">
She didn't go back. That was the lie she told herself, and she almost believed it — she'd had a strange evening, the professor was odd, it meant nothing. She went to class. She studied. She met Melody for book club and talked about the reading and smiled.
And then she was home, in the maroon skirt and the cream top with the keyholes, and she didn't remember changing into them, and she didn't remember deciding to go.
She was already at his door.
He let her in without a word, and the lights were already on, the bed already made, and he was wearing the black suit, and he said, mild as anything:
<<speech "Caldwell">> "Perfect." <</speech>>
Her knees hit the floor. She watched them do it — watched her own body fold — and the rest of the hour belonged to him. He made her kneel on the white bed in the black strappy lingerie, all fours, and he stood at the edge of the mattress and fed his cock into her mouth, one hand on the back of her head, and she took him deep, cheeks hollowed, eyes watering, while he talked over her head to no one.
<video src="img/Lulu/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Report me," <</speech>> he said, almost pleasantly, <<speech "Caldwell">> "and tell them exactly what the campus's model student does in her spare time. Go on. You can't even remember your own name when I'm done with you, you worthless thing." <</speech>>
He pulled her onto her back against the white pillows, and he came across her tongue, her lips, her chin, thick ropes of it, and she knelt there with her mouth open, catching the last drops, and when she looked up at him through the mess, she was smiling. Small. Wet. Ruined. She couldn't stop it.
<video src="img/Lulu/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Say it." <</speech>>
<<speech "Lulu">> "I'm the model student," <</speech>> she heard herself say, "and I come when Dr. Caldwell calls."
<<speech "Caldwell">> "Good girl. Get dressed. You have a paper due, and I have a use for you soon." <</speech>>
She walked home on shaking legs with his come still drying on her face, and she sat down at her desk and opened her books, and nobody — not Nathan, not Melody, not anyone — saw a thing. The diligent student was intact. She was just someone else's now.
<<elseif _s is 3>>
<img src="img/Lulu/Corr3.jpg">
She'd stopped asking why. That was the thing she couldn't explain, in the mornings, in the library, in the moments when the fog lifted far enough to think — she couldn't remember the moment she'd stopped fighting, any more than she could remember the moment she'd started dressing for him without being told. The fog was everywhere now, soft at the edges, and the word was always waiting at the bottom of it.
She came to his house in the evening, in the purple lace garter and thigh-highs, and he was waiting on the bed in the black suit, and she stood in front of him, and she tried — one last time, the last flag — to remember what she'd been before.
<<speech "Lulu">> "I was going to be somebody," <</speech>> she said, and her voice came out small and strange. <<speech "Lulu">> "I was going to — I had plans. I was — " <</speech>>
He looked at her, patient as ever.
<<speech "Caldwell">> "Say it again," <</speech>> he said, gently.
She opened her mouth. What came out was:
<<speech "Lulu">> "Perfect." <</speech>>
The fog closed over her head, warm and soft, and the last flag came down. He laid her back on the white bed, still in the black strappy lingerie, and took her slow and deep, his eyes on hers, and she moaned his name, and she was still, somewhere very far away, screaming. It didn't matter. Nothing she did mattered anymore. She was his, and it was the only thing left in her that was true.
<video src="img/Lulu/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He turned her over, and she went onto her hands and knees without being told, and he took her from behind, hard and claiming, and she pressed her face into the mattress and took it, all of it.
<video src="img/Lulu/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When he was done, he pulled out, and his come spilled out of her, running down her thigh, and he looked down at her with something almost tender in his contempt.
<<speech "Caldwell">> "Say what you are, you stupid thing." <</speech>>
And the fog let her keep this one thing, let the words rise up through it clear and true and her own:
<<speech "Lulu">> "I'm yours, Master." <</speech>> Her voice was wrecked and steady at once. <<speech "Lulu">> "I'm your assistant. I'll do whatever you need. I'll be perfect for you — I'll be perfect." <</speech>>
He smiled — slow, private, the smile of a man who'd won a very long game.
<<speech "Caldwell">> "There she is. The model student, kept for me. You're going to be very useful, Miss Lulu. The most useful thing I own." <</speech>>
She lay there in the cooling dark, his come drying on her thigh, and the fog was warm and soft and everywhere, and the last thought that was truly hers rose up through it and sank again: I was going to be somebody. It didn't matter anymore. The campus still saw the diligent student — in class, at book club, nodding at Melody, helping Nathan with the reading. Nobody saw the woman who walked to the glass house when the day was done, who knelt on the white bed and called him Master, and meant it. She was still perfect. She was just perfect for him now.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Lulu/Normal.jpg">
The study project was supposed to be about post-colonial narratives — Said's *Orientalism*, the power of the gaze, the way stories get told about people who don't get to tell them back. Lulu had chosen the topic. She'd been looking forward to it. And she was sitting in Jasper's bright living room, on the pink sofa with the open kitchen behind them, and she could not remember a single thing she'd read.
He was quiet. That was the first thing she'd noticed about him, the term she'd started seeing him around — the sociology major from Havenwood, the one who read alone in the café and never seemed to need an audience. Everyone else she knew was a performance; he was the only person on campus who seemed to be exactly what he appeared to be, and it unnerved her a little, and it drew her a little too. They'd been paired for the project, and he'd offered his place to work, and she'd said yes, and now she was here, and her notes were swimming.
<<speech "Lulu">> "So, in Said — the discourse is less about factual depiction and more about — about — " <</speech>> She trailed off, her thoughts scattering like dust motes in the afternoon sun.
He made tea. That was the other thing — he made tea, slowly, unhurriedly, the way she'd watched him do it a hundred times in the café without quite admitting she was watching: the loose-leaf, the pour, the patient wait. The smell that came off the cup he set in front of her was warm and spicy and clean, like rain on warm pavement, and something in her chest loosened a notch. Then another sip, and her shoulders came down off her ears.
<<speech "Jasper">> "Power, Lulu." <</speech>> He leaned in, closing the book between them with one finger still marking her page. <<speech "Jasper">> "It's about the power of the narrative. The power to define the other. Said isn't asking us to memorize — he's asking us to notice who's doing the telling." <</speech>>
She noticed, then, that he was close. That his voice was low and easy. That the room smelled like him — warm, and patient, and safe — and that she'd stopped thinking about the essay entirely. She was thinking about how it would feel to lean forward the last few inches. She was thinking about whether he'd let her.
<<speech "Lulu">> "Jasper — " <</speech>> Her voice came out smaller than she meant it to. <<speech "Lulu">> "I'm sorry, I can't concentrate. I don't know what's wrong with me." <</speech>>
<<speech "Jasper">> "Nothing's wrong with you." <</speech>> He said it simply, like it was a fact, and his hand came up and brushed a strand of hair behind her ear — a small, unhurried touch that felt like being seen. <<speech "Jasper">> "Sometimes the best way to understand a text is to stop reading it for a while." <</speech>>
The scent wrapped around her. She leaned in — not thinking, not deciding — and kissed him, soft, and he kissed her back like he'd been waiting, unhurried, his hand sliding into her hair.
He didn't rush her. He helped her out of the rainbow-striped crop top and the black athletic shorts in the bright living room, and she stood bare in front of the pink sofa, the small script tattoo on her left shoulder catching the light, and he looked at her the way you look at something you want to keep safe. Her hand found him through his jeans, and she looked up at him, and he smiled — a real smile, warm at the corners of his eyes.
<video src="img/Lulu/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Later, in his bedroom — the white bed, string lights across the headboard, the dark of the pool visible beyond the window — she sat astride him in the light-blue bra and thong, grinding slow against him, his hands on her hips, and it felt less like falling and more like being caught. He kissed her deep, and she sighed into his mouth, and she thought: I didn't know it could be like this. I didn't know anyone could make me feel this safe.
<video src="img/Lulu/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lulu">> "This is crazy," <</speech>> she whispered against his mouth, half laughing, half breathless. <<speech "Lulu">> "We're supposed to be writing an essay." <</speech>>
<<speech "Jasper">> "We're writing a better story," <</speech>> he said, and she laughed, bright and surprised, and curled into him, and she didn't want to leave.
<<elseif _s is 2>>
<img src="img/Lulu/Corr1.jpg">
She tried to study. That was the thing — she tried. She sat in the library with her notes spread out, the essay due any day now and still untouched, and she stared at the page and saw his face. She went to book club with Melody and smiled and said all the right things and thought about the weight of his hand on her hip. She ran into Nathan and asked him a question about the reading and heard her own voice as if from far away, because she was somewhere else entirely, wrapped in a scent she couldn't name and didn't want to lose.
The text came in the evening, simple and warm, the way everything about him was. *Tonight. I want to see you. Properly this time.*
She didn't hesitate. She changed — the maroon skirt, the cream top with the keyholes, the thigh-highs she'd bought on a whim and never had the courage for — and she was at his door before she could second-guess a single button. He opened it, and the smile he gave her reached his eyes, and the scent washed over her, and it felt like coming home.
<<speech "Jasper">> "There you are." <</speech>> He pulled her inside and held her — just held her, chin on the top of her head, arms around her like she was something precious. <<speech "Jasper">> "I've been thinking about you." <</speech>>
<<speech "Lulu">> "I've been thinking about you too," <</speech>> she said into his chest, and it came out smaller and truer than she'd meant it to.
<img src="img/Lulu/Corr2.jpg">
When she stepped out to join him, she was wearing the sheer light-blue mesh bodysuit she'd bought on the same reckless afternoon — the one with the geometric cutouts that hid nothing. Jasper turned her toward the window so the last of the light ran through it, and she looked back over her shoulder at him through the mesh, and he took his time looking. Then he peeled it from her shoulders, down her hips, until only the light-blue bra and thong remained, and he led her outside, to the bed under the string lights by the pool, and she lay on her stomach between his legs, the light-blue bra and thong she'd put on for him still on, and she took him into her mouth slowly, learning him, his hand resting on the back of her head — not guiding, just there, warm, telling her without words that she was safe, that she was his to be gentle with.
<video src="img/Lulu/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lulu">> "I don't know what you've done to me," <</speech>> she whispered, kneeling up, her lips wet, when he pulled her face up to his. <<speech "Lulu">> "I can't stop thinking about you. I don't feel like myself. I feel like — like I'm yours." <</speech>>
<<speech "Jasper">> "Good," <</speech>> he said, and he said it like a kindness, not a claim. <<speech "Jasper">> "That's how it should feel. You're not losing yourself, Lulu. You're finding the place you belong." <</speech>>
<video src="img/Lulu/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He knelt in front of her on the light rug, and she tilted her head back with her eyes closed, and he came across her tongue, her lips, her chin — warm, unhurried, and she stayed there, taking it, her long dark hair a mess around her shoulders, and when she opened her eyes and looked up at him, she was smiling through it, and she meant it.
She fell asleep against his chest that night, his hand in her hair, and she didn't dream of the essay at all.
<<elseif _s is 3>>
<img src="img/Lulu/Corr3.jpg">
She'd told herself she could have both. That was the story she'd been telling — that she could spend her evenings at his place and still be the diligent, thoughtful student everyone knew, that she could hold on to her life and him at the same time.
She knew better the night she stood in his doorway in the maroon skirt and the purple lace garter, having dressed for him without quite deciding to, and tried to say the words she'd practiced all the way over.
<<speech "Lulu">> "I can't keep doing this, Jasper. I'm not — I don't just — become someone's." <</speech>> Her voice shook. <<speech "Lulu">> "I have a life. I have a degree. I have friends who keep asking where I've been. This is — it's too much. I can't be yours." <</speech>>
He crossed the room, slow, and took her face in his hands, and the scent settled around her like a blanket.
<<speech "Jasper">> "You're not becoming mine, Lulu." <</speech>> He said it gently, like he was correcting a small misunderstanding. <<speech "Jasper">> "You're coming home. There's a room at the house with a window that gets afternoon light, and a bookshelf that's been waiting for someone who actually reads the books. I've been keeping it for you." <</speech>>
The last wall she'd built came down somewhere in that sentence. He undressed her slowly — the skirt, the garter, the last of the fight — and she straddled him on the light sofa, nude except the white ankle socks, and she rode him slow, eyes half-closed, his hand on her side, and it wasn't giving anything up. It was the first time in her life she'd ever been held like she mattered.
<video src="img/Lulu/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Lulu">> "I trust you," <</speech>> she said, and the words came out like a door opening. <<speech "Lulu">> "I trust you, Jasper. Completely ❤️." <</speech>>
He laid her back on the white sheets, drew her legs up over his shoulders, and made love to her slow and deep, his eyes on hers the whole time, and when he came inside her and pulled out and she felt the warmth of it leaking from her, she reached down and held herself open for him, showing him what he'd left, because she wanted him to know — she was his, and it was the safest thing she'd ever felt.
<video src="img/Lulu/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She kept her life. She still went to classes, still met Melody for book club, still waved at Nathan across the quad and smiled when he asked about the essay. Nobody saw anything. Nobody saw the woman who walked to Havenwood when the day was done, who'd stopped asking permission and started just arriving, who had a shelf of her own books in a bright room with afternoon light. She was still Lulu. She was just home now, in the way that mattered, and she'd never felt less lost in her life.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Lulu/Normal.jpg">
The group study session had been dying by inches for two hours, and Lulu was the only one still trying to keep it on life support. Five of them had crammed into Josh's living room with their textbooks and laptops, and now three of them were gone — one to a phone call that was clearly an excuse, one to a dinner that wasn't for another hour, one just... walked out when nobody was looking. The project was a group thesis on alienation, the poem they'd been assigned a long, dense thing about a man who can't bring himself to act, and Lulu had made flashcards and a color-coded outline and a reading schedule, and it was dying anyway.
Josh hadn't contributed a single word all afternoon. He was leaning against the wall with his arms crossed, watching them the way you watch a car crash you're not involved in. When the last of the others grabbed her jacket and muttered something about an early shift, Lulu stayed — she always stayed, she was the project lead, it was her job to hold the thread — and the door clicked shut, and the living room went quiet.
She started gathering the flashcards, trying to salvage something. It was just her and him now, and she could feel him looking at her, and she kept her eyes down, stacking the cards, tucking the outline into her bag.
<<speech "Lulu">> "You're welcome to contribute anytime," <</speech>> she said, and it came out lighter than she meant it to, almost a joke. <<speech "Lulu">> "The thesis is supposed to be a group effort. You've been standing there for two hours." <</speech>>
<<speech "Josh">> "I've been watching," <</speech>> he said. His voice was lazy, but there was an edge under it that made her look up. <<speech "Josh">> "The way you run a room is interesting. You're the one who stayed. You're always the one who stays." <</speech>>
She looked at him. And the moment their eyes met, the wave hit her.
It came out of nowhere — a wall of raw, animal heat that slammed into her chest and stole her breath. The flashcards, the outline, the essay she'd been about to save — all of it dissolved into static. Her skin went hot. Her thighs pressed together, then fell apart, and a slick, shameful ache bloomed between them. She grabbed the edge of the coffee table, gasping, her pencil clattering to the floor.
<<speech "Lulu">> "I — " <</speech>> she managed, and her voice came out wrong, thin and breathy. <<speech "Lulu">> "I don't feel — right — " <</speech>>
<<speech "Josh">> "Feel it, though. Don't you." <</speech>> He pushed off the wall, slow, predatory, a cruel smile playing at the corner of his mouth. <<speech "Josh">> "The diligent little scholar, finally alone with me, and her knees are shaking. You want to know what the poem's really about, Lulu? It's about a coward who can't decide whether to part his hair. You want to know what you're about? You'd crawl across this floor if I told you to." <</speech>>
<<speech "Lulu">> "No — please — " <</speech>>
<<speech "Josh">> "The yellow crop top. The shorts with the little flowers. Cute." <</speech>> He gestured, lazy. <<speech "Josh">> "Take them off. Slowly. I want to see what the smart girl is hiding." <</speech>>
Her hands moved on their own — the red beaded choker she'd put on that morning, the yellow crop top peeling up over her head, the flower-patch shorts sliding down her hips. She stood trembling in nothing, and he made her lie back on the round white ottoman, legs drawn up, and slide the purple thong aside to show him what the ache had done to her.
<video src="img/Lulu/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "There she is. The diligent little scholar, spread open on my ottoman." <</speech>> He didn't touch her. <<speech "Josh">> "Touch yourself. Show me what you were thinking about instead of your outline." <</speech>>
She sank back onto the black-draped ottoman, the light purple crop top still around her wrists, plaid skirt pooled at her thighs, tall white boots catching the green light from the blinds, and her hand slid between her legs on its own, fingers finding the slick heat he'd made. She worked herself for him, broken little sounds escaping her mouth, her head tipped back, and he watched her the whole time — cold, sober, enjoying every second of her undoing.
<video src="img/Lulu/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When she came, it was sharp and humiliating, a choked sob torn out of her, her body jerking on the ottoman. He didn't touch her. He stood over her, watching her shake, and then he said:
<<speech "Josh">> "Get dressed. Get out. And don't come back until I call for you." <</speech>>
He turned and walked away. She lay there, spent and burning, and she knew — with a horror that was already curdling into something worse — that she would be back.
<<elseif _s is 2>>
<img src="img/Lulu/Corr1.jpg">
The craving hit her in the middle of the literature lecture, and it was physical — a hot, shameful ache that made her hands tremble and her vision blur. She stared at the professor's mouth moving and heard nothing. She was burning, and only one person in the world could put it out.
She sent the text before she could stop herself. *Please.*
The reply came a heartbeat later. *Now.*
She ran. Out of the lecture hall, across the quad, to his place — she didn't even grab her bag. He was on the couch, mid-game, controllers in his hands, and he didn't pause it when she burst in. He just looked at her over his shoulder, that flat, patient look.
<<speech "Josh">> "Look what the cat dragged in. Already crawling back?" <</speech>>
<<speech "Lulu">> "Please — Josh — I can't — I need — " <</speech>>
<<speech "Josh">> "I'm in the middle of a game. You want my attention?" <</speech>> He tilted his head toward the hallway. <<speech "Josh">> "Earn it." <</speech>>
She crawled. Down the polished hallway floor, her knees burning, in the white short-sleeve shirt and plaid skirt and red thigh-high stockings she'd put on that morning without knowing why, and when she reached him he finally paused the game and looked down at her, and there was nothing kind in it.
<<speech "Josh">> "Take it out." <</speech>>
She fumbled with his belt, her fingers clumsy, and then he was in her mouth, thick and hot, and she moaned around him, a desperate, grateful sound, working him with her lips and tongue while he stood over her with one hand in her hair, not guiding — owning.
<video src="img/Lulu/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "That's it. Look at you. The little bookworm, gagging for my cock in the hallway. Who's the smart one now, you stupid thing?" <</speech>>
She looked up at him, eyes watering, cheeks hollowed, and she didn't even feel the shame anymore — just the need, the bottomless, drowning need. He pulled out and stroked himself over her upturned face, the plaid shirt hanging open around her neck, and came across her tongue, her lips, her chin, thick and hot, and she knelt there with her mouth open, catching the last of it, looking up at him like he was the only thing in the world.
<video src="img/Lulu/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "Good girl." <</speech>> He tucked himself away, already reaching for his controller. <<speech "Josh">> "Clean yourself up. You're a mess. And don't call me — I'll call you." <</speech>>
She stood on shaking legs, his come still wet on her face, and she walked out into the cold, and she told herself she hated him, told herself she'd never come back. But she could still feel the shape of him in her mouth, and she knew, with the part of her that was drowning, that she'd come the second he called.
<<elseif _s is 3>>
<img src="img/Lulu/Corr3.jpg">
The text came in the dead hours of the night, yanking her from a fitful, sweat-soaked sleep. *My couch. Now.*
There was no hesitation. There was no thought — only the ache, the burning, the biological imperative he'd wired into her. She let herself in, and the living room was bathed in the cold blue light of the silent television, and he was sitting on the couch, a dark silhouette, waiting.
<<speech "Josh">> "Strip." <</speech>>
Her hands shook as she pulled the hoodie over her head, then the shirt, then the jeans — down, along with the panties, until she was standing naked and trembling in front of him. He looked at her the way you look at a thing you own.
<<speech "Josh">> "On the bed. Hands and knees. Face the wall." <</speech>>
She scrambled onto the white bed, and she heard him undressing behind her, and then he was on her, sliding into her from behind in one hard, deep thrust, and she cried out — pain and pleasure tangled so tight she couldn't separate them. He set a brutal rhythm, his hands gripping the black straps of the harness that held her hips, and she rocked under him, head turned, mouth open, and she was nothing — nothing but this, a set of holes for him to use.
<video src="img/Lulu/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "This is all you are now. A desperate little pet who comes running when I call. Look at you, begging for it on my bed like a bitch in heat." <</speech>>
She was close — a coil of pleasure so tight it was agony — and his hand slid around, fingers finding her clit, rubbing in tight circles that pushed her to the edge.
<<speech "Josh">> "Don't you dare come until I say so. This isn't for you. This is for me." <</speech>>
<<speech "Lulu">> "Please — Josh — please let me come — I'm yours — I'm your — " <</speech>>
He pulled out, flipped her onto her stomach, and drove into her from behind as she lay face-down on the black leather, ass raised, and she sobbed into the cushions, begging, and when he finally said it — <<speech "Josh">> "Come, you stupid thing." <</speech>> — the coil snapped and she shattered around him, screaming his name, and he came deep inside her a moment later, a final, possessive mark.
<video src="img/Lulu/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled out, and his come spilled out of her, running down her thigh, and he slapped her ass once, hard, the sound echoing in the quiet room.
<<speech "Josh">> "Get up. Get dressed. Get out. Don't contact me until I say so." <</speech>>
She lay there in the cooling dark, his release drying on her skin, and she knew — in the small, dim room where the real her still lived, the girl who underlined stanzas and believed in effort — that she'd never get out. Her legs carried her home in the dark. The diligent student was a memory now. What was left waited, hollow and burning, for the man who owned her, and she'd come the moment he called, every time, forever.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div>/* ============================================================
FOUR VICES — MODULE 5: ELIMINATION LOGIC
Contains: checkVulnerability, getEliminationScore
Called by: TargetSelection, ProcessAction, CPU_Process
============================================================
Elimination requires two conditions to both be true:
Condition 1 — All of the TARGET's Full Keys must be at stage 3
for at least one vice (not necessarily the attacker).
This represents the target being "exposed."
Condition 2 — The ATTACKER must break the target, either way:
AUTO-VICTORY: personally holds 3 or more of the target's
Main Keys at Stage 3 (any key-set size — 4 now, 5 in V3).
SCORE VICTORY: with fewer than 3 Main Keys held, the
elimination score must reach 8 points (7 for Jasper):
Full Key owned at stage 3 → +2 points each
Spare Key owned at stage 3 → +1 point each
getEliminationScore() is the shared helper used by both
checkVulnerability() and the AI strategy brain (updateStrategy).
============================================================ */
// --- ELIMINATION SCORE ---
// Returns the attacker's current elimination score against a target.
// Used both for the vulnerability gate and for AI threat assessment.
window.getEliminationScore = function(attackerId, targetId) {
var roster = State.variables.roster;
var targetKeys = State.variables.vices[targetId].keys;
var targetBackups = State.variables.vices[targetId].backups;
var score = 0;
for (var i = 0; i < targetKeys.length; i++) {
var npc = roster.find(function(c) { return c.id === targetKeys[i]; });
if (npc && npc.owner === attackerId && npc.stages[attackerId] >= 3) score += 2;
}
for (var i = 0; i < targetBackups.length; i++) {
var npc = roster.find(function(c) { return c.id === targetBackups[i]; });
if (npc && npc.owner === attackerId && npc.stages[attackerId] >= 3) score += 1;
}
return score;
};
// --- VULNERABILITY CHECK ---
// Returns true if the attacker meets both conditions to attempt elimination.
window.checkVulnerability = function(attackerId, targetId) {
var roster = State.variables.roster;
var vices = State.variables.vices;
if (!roster || !vices || !vices[targetId]) return false;
var targetKeys = vices[targetId].keys;
// Condition 1: Every Full Key of the target must be maxed by someone
for (var i = 0; i < targetKeys.length; i++) {
var npc = roster.find(function(c) { return c.id === targetKeys[i]; });
if (npc) {
var isMaxed = Object.values(npc.stages).some(function(s) { return s >= 3; });
if (!isMaxed) return false;
}
}
// Condition 2 (rework): auto-victory on 3+ Main Keys held personally
// at Stage 3, regardless of score; otherwise the score must reach 8.
var mainsHeld = 0;
for (var i = 0; i < targetKeys.length; i++) {
var knpc = roster.find(function(c) { return c.id === targetKeys[i]; });
if (knpc && knpc.owner === attackerId && knpc.stages[attackerId] >= 3) mainsHeld++;
}
if (mainsHeld >= 3) return true;
// Jasper reads people too well to need the full hold: his score bar is 7.
var scoreBar = (attackerId === "jasper" ? 7 : 8);
return window.getEliminationScore(attackerId, targetId) >= scoreBar;
};window.isTranscendent = function(viceId) {
var roster = State.variables.roster;
var vices = State.variables.vices;
if (!roster || !vices || !vices[viceId]) return false;
var keys = vices[viceId].keys;
var captured = roster.filter(function(c) {
return keys.includes(c.id) && c.owner === viceId && c.stages[viceId] >= 3;
});
return captured.length >= 3;
};
/* ============================================================
CONQUEST-ONLY OWNERSHIP
owner is set ONLY when a master fully conquers a girl (his
stage reaches 3) and cleared when that stage is undone.
Partial progress lives exclusively in stages — owner must
never duplicate it.
============================================================ */
/* Drop an owner whose conquest no longer stands (stage < 3). */
window.syncOwner = function(girl) {
if (girl && girl.owner !== null && girl.stages[girl.owner] < 3) girl.owner = null;
};
/* The rival with the highest stage on a girl (excluding a master),
or null. Used where "who is she tied to right now" is needed —
ownership no longer tracks partial progress. */
window.leadingRival = function(girl, excludeId) {
if (!girl) return null;
var best = null, bestStage = 0;
["nathan", "josh", "jasper", "caldwell"].forEach(function(id) {
if (id === excludeId) return;
if (girl.stages[id] > bestStage) { bestStage = girl.stages[id]; best = id; }
});
return best;
};
window.rollToFind = function(availLevel, viceId, npcId) {
var v = State.variables.vices[viceId];
var npc = State.variables.roster.find(function(c) { return c.id === npcId; });
var eclipse = State.variables.activeEclipse;
// Same-girl same-turn repeat malus (batches 40+42): -30 percentage
// points per earlier attempt on her this turn. Finds and conquests
// share one counter ($attemptLog, reset at every turn end). Applied
// only to ROLLED finds — the automatic find branches (Pulse Scout,
// Kane's mark, Static Void, Inheritance, Carnal Fever, detention,
// group assignments) never roll and stay automatic. Floor: 0.
var repeatPenalty = 30 * ((State.variables.attemptLog && State.variables.attemptLog[npcId]) || 0);
// Pulse Scout: auto-success, clears itself
if (v && v.scoutActive) { v.scoutActive = false; return true; }
// Kane's Quest: the marked girl is always findable
if (State.variables.kaneQuest && State.variables.kaneQuest.active
&& State.variables.kaneQuest.npcId === npcId) return true;
// Static Void: everyone finds everyone
if (eclipse.theme === "The Static Void") return true;
// Inheritance: slave's key/backup — auto-find
if (v.slaves.length > 0) {
var isSlaveKey = v.slaves.some(function(sId) {
var slave = State.variables.vices[sId];
return slave.keys.includes(npcId) || slave.backups.includes(npcId);
});
if (isSlaveKey) return true;
}
// Carnal Fever: Josh auto-finds all students
if (eclipse.theme === "The Carnal Fever" && viceId === "josh") {
var adults = ["chanel", "anya", "alina", "adriana", "maya", "caprice"];
if (!adults.includes(npcId)) return true;
}
// Gossip Chain: boosted find chance
var gossip = State.variables.gossipChain;
if (gossip && gossip.master === viceId && gossip.npc === npcId) {
var gossipChance = 90;
if (npc && npc.traits.includes("Wary")) gossipChance -= 15;
if (npc && npc.traits.includes("Jaded")) gossipChance -= 15;
if (npc && npc.traits.includes("Invested")) gossipChance += 15;
var totalInfluenced = State.variables.roster.filter(function(c) { return c.stages[viceId] > 0; }).length;
if (npc && npc.traits.includes("Curious") && totalInfluenced > 0) gossipChance *= 1.5;
if (State.variables.gameDay > 10) gossipChance += 15;
return (Math.random() * 100) < Math.max(0, gossipChance - repeatPenalty);
}
// Caldwell Detention
if (viceId === "caldwell") {
var det = State.variables.detentionTarget;
if (det === npcId || det === "ALL_STUDENTS") return true;
}
// Group Assignment
var groups = State.variables.groupAssignments;
if (groups) {
for (var i = 0; i < groups.length; i++) {
if (groups[i].master === viceId && groups[i].targets.includes(npcId)) return true;
}
}
// Best avail level across master + slaves
var finalLevel = parseInt(availLevel);
v.slaves.forEach(function(sId) {
var slaveLevel = npc.avail[sId];
if (slaveLevel > finalLevel) finalLevel = slaveLevel;
});
// Jaded: permanently drops avail level by 1 (floor 1)
if (npc && npc.traits.includes("Jaded")) {
finalLevel = Math.max(1, finalLevel - 1);
}
var chanceMap = { 1: 30, 2: 60, 3: 90 };
var finalChance = chanceMap[finalLevel] || 0;
if (npc && npc.traits.includes("Wary")) finalChance -= 15;
if (npc && npc.traits.includes("Invested")) finalChance += 15;
var totalInfluenced = State.variables.roster.filter(function(c) { return c.stages[viceId] > 0; }).length;
if (npc && npc.traits.includes("Curious") && totalInfluenced > 0) finalChance *= 1.5;
if (State.variables.gameDay > 10) finalChance += 15;
/* SOCIALITE: +10% find when the target is a friend of an owned Socialite */
if (setup.hasPerkFriend && setup.hasPerkFriend(npcId, "socialite", viceId)) finalChance += 10;
return (Math.random() * 100) < Math.max(0, finalChance - repeatPenalty);
};
window.rollToConquer = function(multiplier, viceId, npcId) {
if (isTranscendent(viceId)) return true;
var v = State.variables.vices[viceId];
var npc = State.variables.roster.find(function(c) { return c.id === npcId; });
var eclipse = State.variables.activeEclipse;
var roster = State.variables.roster;
var socialMap = State.variables.socialMap;
var weapon = v.weapon.toLowerCase();
// Inheritance: slave's key/backup — auto-conquer
if (v.slaves.length > 0) {
var isSlaveKey = v.slaves.some(function(sId) {
var slave = State.variables.vices[sId];
return slave.keys.includes(npcId) || slave.backups.includes(npcId);
});
if (isSlaveKey) return true;
}
// Best weakness multiplier across master + slaves
var finalMult = parseInt(multiplier);
v.slaves.forEach(function(sId) {
var slaveWeapon = State.variables.vices[sId].weapon.toLowerCase();
var slaveMult = npc.weakness[slaveWeapon];
if (slaveMult > finalMult) finalMult = slaveMult;
});
// Josh Path of Lust: +2 to the multiplier if he has any slave
if (viceId === "josh" && v.slaves.length > 0) finalMult += 2;
// Carnal Fever: +2 to Lust weakness (cap at 5)
// Applies to anyone using a Lust weapon during this eclipse
if (eclipse.theme === "The Carnal Fever" && weapon === "lust") {
finalMult = Math.min(5, finalMult + 2);
}
var finalChance = 20 * finalMult;
// Halo Effect: if any Stage 2+ friend of the target has Halo Effect,
// Love-weapon rolls get +20%. Applies to all masters.
if (weapon === "love") {
var friends = socialMap[npcId] || [];
var haloActive = friends.some(function(fId) {
var friend = roster.find(function(c) { return c.id === fId; });
return friend
&& friend.traits.includes("Halo Effect")
&& Object.values(friend.stages).some(function(s) { return s >= 2; });
});
if (haloActive) finalChance += 20;
}
// Serene Collective: Jasper +10%
if (eclipse.theme === "The Serene Collective" && viceId === "jasper") finalChance += 10;
// Unshakeable: -20% if attacker is not the original imprinter
if (npc && npc.traits.includes("Unshakeable") && npc.imprint !== viceId) finalChance -= 20;
// Invested: +15% conquer bonus
if (npc && npc.traits.includes("Invested")) finalChance += 15;
/* PERSUADER: +10% when the target is a friend of an owned Persuader.
The old lookup used the nonexistent perk key "anchor", so the
displayed Persuader benefit never activated. */
if (setup.hasPerkFriend && setup.hasPerkFriend(npcId, "persuader", viceId)) finalChance += 10;
/* INSIDER: -10% for a rival attacking the Key of the master currently
holding her progress (owner only marks full conquests). */
if (npc) {
var defId = window.leadingRival(npc, viceId);
if (defId !== null) {
var defV = State.variables.vices[defId];
if (defV && defV.keys.indexOf(npcId) !== -1
&& setup.perkOwners && setup.perkOwners("insider").indexOf(defId) !== -1) {
finalChance -= 10;
}
}
}
/* Same-girl same-turn repeat malus (batch 42): -30 percentage points
per earlier attempt on her this turn — the same shared counter the
find roll uses ($attemptLog). The auto-conquest branches above
return early and stay automatic. Floor: 20% — a guarded girl can
still be pushed, never guaranteed to fail. */
var repeatPenalty = 30 * ((State.variables.attemptLog && State.variables.attemptLog[npcId]) || 0);
return (Math.random() * 100) < Math.max(20, finalChance - repeatPenalty);
};/* ============================================================
FOUR VICES — MODULE 1: CONFIG & UX (passage part)
Keyboard navigation. The save-system config lives in the Story
JavaScript panel: Config.saves.* must run before the engine boots,
so it cannot load from a passage.
============================================================ */
// --- KEYBOARD NAVIGATION ---
// Number keys click the matching action link; +/− and the arrow keys walk
// the story history; B/C/T/S open the Board / Bios / Tutorial / Saves;
// Esc closes any open pop-up (Vice Guide, Saves, the shortcut list).
// Safety rules: nothing fires while typing in inputs, while a dialog is
// open (except Esc), or with Ctrl/Alt/meta held. The B/C/T/S navigation
// keys are additionally blocked during protected sequences — finales,
// Gallery mode, and clash/Apex scene queues — mirroring the moments the
// sidebar itself hides those links.
$(document).on('keydown', function(ev) {
if (["INPUT", "TEXTAREA"].includes(ev.target.tagName)) return;
if (ev.ctrlKey || ev.altKey || ev.metaKey) return;
/* Esc always closes the topmost open dialog. */
if (ev.key === "Escape") {
if (Dialog.isOpen()) { Dialog.close(); ev.preventDefault(); }
return;
}
/* While a pop-up is open, no other shortcut may fire — the dialog
gets the keyboard to itself. */
if (Dialog.isOpen()) return;
var pickLink = function (pattern) {
$(document).find('a').filter(function () {
return pattern.test($(this).text());
}).first().click();
};
/* 2-4 click the Nth link of the passage area when the screen is a
compact choice list (few links) — never on target grids. Falls back
to plain digit-matching (numbered lists such as the Tutorial index). */
var pickChoice = function (n) {
var $links = jQuery('#passages').find('a');
if ($links.length > 0 && $links.length <= 8 && n <= $links.length) {
$links.eq(n - 1)[0].click();
return;
}
var pat = new RegExp("(^|[^0-9a-z])" + n + "([^0-9a-z]|$)", "i");
$(document).find('a').filter(function () {
return pat.test($(this).text());
}).first().click();
};
/* Sidebar-parity guard for the navigation letters. */
var navOK = function () {
var V = State.variables;
return V.playerID
&& V.galleryMode !== true
&& !String(State.passage).startsWith("Finale_")
&& !(V.apexSceneFinalStage !== null && V.apexSceneFinalStage !== undefined)
&& (!V.apexSceneQueue || V.apexSceneQueue.length === 0)
&& (!V.clashScenes || V.clashScenes.length === 0);
};
switch (ev.key) {
case "1":
pickLink(/(^|[^a-z0-9])(1|continue|witness|dark|enter|awaken|turn|return|new|chain|next|complete|watch|begin|submit|end|silence|observe|again|claim|target|attack|engage)([^a-z0-9]|$)/i);
break;
case "2": pickChoice(2); break;
case "3": pickChoice(3); break;
case "4": pickChoice(4); break;
case "+": case "=": Engine.forward(); break;
case "-": case "_": Engine.backward(); break;
case "ArrowRight": Engine.forward(); break;
case "ArrowLeft": Engine.backward(); break;
case "b": case "B":
if (navOK() && Story.has("Board")) { Engine.play("Board"); ev.preventDefault(); }
break;
case "c": case "C":
if (navOK() && Story.has("Characters")) { Engine.play("Characters"); ev.preventDefault(); }
break;
case "t": case "T":
if (navOK() && Story.has("Tutorial")) {
State.variables.tutorialReturnPassage = State.passage;
Engine.play("Tutorial"); ev.preventDefault();
}
break;
case "s": case "S":
if (navOK()) { UI.saves(); ev.preventDefault(); }
break;
}
});/* ============================================================
FOUR VICES — MODULE 2: GAUGE MANAGEMENT
Contains: adjustGauge
============================================================ */
window.adjustGauge = function(viceId, amount) {
var v = State.variables.vices[viceId];
if (!v) return;
// Eclipse Theme: The Crimson Fever doubles positive gauge gains
var eclipse = State.variables.activeEclipse;
if (amount > 0 && eclipse && eclipse.theme === "The Crimson Fever") {
amount *= 2;
}
// Social Pandemic: while Nathan's Ultimate is active, his positive
// gains are halved — the chain avalanche already pays for itself.
if (amount > 0 && ((viceId === "nathan" && v.ultType === "social_pandemic")
|| (viceId === "caldwell" && v.channelUlt === "social_pandemic"))) {
amount = Math.max(1, Math.round(amount / 2));
}
v.gauge = Math.max(0, Math.min(100, v.gauge + amount));
};/* ============================================================
FOUR VICES — MODULE 4: INTERCEPTION & CLASH
Contains: checkInterception, checkNathanInterception, getClashBonus
Called by: ProcessAction, CPU_Process, Clash_Event
============================================================
There are two distinct interception systems:
A. checkInterception — Social Map / Protective Trait
Fires when any vice targets an NPC. Checks if a *friend* of that
NPC (via socialMap) has the Protective trait and is not yet fully
conquered by anyone. If so, 25% chance the friend steps in front
and becomes the actual target instead. Action_ConquestRoll records
the swap so Player_Display / CPU_Process visibly announce it.
B. checkNathanInterception — Shield of Love (Enslaved Master Power)
Fires when any vice (other than Nathan) targets one of Nathan's
NPCs. Requires Nathan to be active AND to have at least one slave.
Full Keys intercept at 40%, Spare Keys at 25%. Returns "nathan"
(the intercepting master ID) on success, null otherwise.
This escalates into a Clash_Event, not a target swap.
============================================================ */
// --- A. SOCIAL / PROTECTIVE INTERCEPTION ---
// Called before the conquest roll in ProcessAction.
// Returns the intercepting NPC object, or null.
setup.checkInterception = function(targetId, masterId) {
var friends = State.variables.socialMap[targetId] || [];
for (var i = 0; i < friends.length; i++) {
var friend = State.variables.roster.find(function(c) { return c.id === friends[i]; });
if (!friend) continue;
if (!friend.traits.includes("Protective")) continue;
// Friend must not be fully locked by anyone
var locked = Object.values(friend.stages).some(function(s) { return s >= 3; });
if (locked) continue;
// Friend must not already be at max stage for this master
if (friend.stages[masterId] >= 3) continue;
if (Math.random() * 100 < 25) {
return friend;
}
}
return null;
};
// --- B. NATHAN'S SHIELD OF LOVE ---
// Called before clash/conquest in both ProcessAction and CPU_Process.
// Only active when Nathan has at least one slave (Path of Love unlocked).
// Returns "nathan" if interception triggers, null otherwise.
setup.checkNathanInterception = function(targetNPC, activeMasterId) {
var nathan = State.variables.vices.nathan;
// Nathan must be alive and have a slave
if (nathan.isEliminated) return null;
if (nathan.slaves.length === 0) return null;
// Target must be under Nathan's influence (any stage) — owner marks
// only full conquests, and conquered girls are locked anyway.
if (targetNPC.stages.nathan === 0) return null;
var isFullKey = nathan.keys.includes(targetNPC.id);
var isSpareKey = nathan.backups.includes(targetNPC.id);
var roll = Math.random() * 100;
if (isFullKey && roll < 40) return "nathan";
if (isSpareKey && roll < 25) return "nathan";
return null;
};
// --- CLASH BONUS ---
// Returns the bonus a vice gets during a Clash_Event.
// Jasper: +5 with any slave. Josh: +7 when clashing the rival currently
// marked by his Predator's Rush — the marked hunger makes him nearly
// unbeatable in that confrontation.
setup.getClashBonus = function(masterId, rivalId) {
var v = State.variables.vices[masterId];
var josh = State.variables.vices.josh;
if (masterId === "josh" && rivalId
&& josh.ultType === "predators_rush"
&& josh.predatorTarget === rivalId) return 7;
if (masterId === "jasper" && v.slaves.length > 0) return 5;
return 0;
};/* ============================================================
FOUR VICES — MODULE 6: AI STRATEGY BRAIN
Contains: updateStrategy
Called by: StoryInit, ProcessAction, CPU_Process,
Midnight_Recap, Clash_Event
============================================================
updateStrategy() evaluates the board state for a given CPU vice
and assigns them a new strategy + target. It runs at the end of
each turn where the AI acts, and also after grudge-triggering events.
Strategy priority (highest to lowest):
1. SURVIVAL — someone has elimination score ≥ 4 against me
2. ELIMINATION — I have elimination score ≥ 4 against someone
3. KANE'S QUEST — race the marked girl whenever the two exceptions above do not apply
4. GRUDGE MATCH — someone recently stole one of my NPCs
5. REVENGE — I was taunted via a Midnight event
6. PERSONALITY — random roll weighted per character
Personality weights:
Nathan → Fortifying (40%), Observing (30%), Consolidating (15%), Expanding (15%)
Josh → Hunting (45%), Expanding (30%), Consolidating (20%), Sowing Discord (5%)
Jasper → Consolidating (40%), Fortifying (30%), Observing (20%), Sowing Discord (10%)
Caldwell → Sowing Discord (40%), Consolidating (30%), Hunting (20%), Expanding (10%)
============================================================ */
setup.updateStrategy = function(mID) {
var v = State.variables.vices[mID];
var masters = ["nathan", "josh", "jasper", "caldwell"].filter(function(id) {
return id !== mID && !State.variables.vices[id].isEliminated;
});
var highestThreat = null;
var highestThreatScore = 0;
var highestPrey = null;
var highestPreyScore = 0;
// Scan all active rivals for threat/prey scores
for (var i = 0; i < masters.length; i++) {
var threatScore = window.getEliminationScore(masters[i], mID);
var preyScore = window.getEliminationScore(mID, masters[i]);
if (threatScore > highestThreatScore) {
highestThreatScore = threatScore;
highestThreat = masters[i];
}
if (preyScore > highestPreyScore) {
highestPreyScore = preyScore;
highestPrey = masters[i];
}
}
// --- Priority 1: SURVIVAL ---
if (highestThreatScore >= 4) {
v.strategy = "Survival";
v.strategyTarget = highestThreat;
v.strategyTimer = 2;
return;
}
// --- Priority 2: ELIMINATION ---
if (highestPreyScore >= 4) {
v.strategy = "Elimination";
v.strategyTarget = highestPrey;
v.strategyTimer = 2;
return;
}
// --- Priority 3: KANE'S QUEST ---
// Everyone races the marked girl unless Survival (danger) or
// Elimination (knock-out) took priority above.
if (State.variables.kaneQuest && State.variables.kaneQuest.active
&& setup.questGirl && setup.questGirl()) {
v.strategy = "Kane Quest";
v.strategyTarget = null;
v.strategyTimer = 1; // re-evaluate every turn (stay on the race)
return;
}
// --- Priority 4: GRUDGE MATCH ---
if (v.grudge !== null && !State.variables.vices[v.grudge].isEliminated) {
v.strategy = "Grudge Match";
v.strategyTarget = v.grudge;
v.strategyTimer = v.grudgeTimer;
return;
}
// --- Priority 5: REVENGE ---
if (v.revengeAgainst !== null && !State.variables.vices[v.revengeAgainst].isEliminated) {
v.strategy = "Revenge";
v.strategyTarget = v.revengeAgainst;
v.strategyTimer = 2;
v.revengeAgainst = null; // Clear after picking up — does not persist beyond this window
return;
}
// --- Priority 6: PERSONALITY ROLL ---
var roll = Math.random() * 100;
if (mID === "nathan") {
if (roll < 40) v.strategy = "Fortifying Position";
else if (roll < 70) v.strategy = "Observing Campus";
else if (roll < 85) v.strategy = "Consolidating Power";
else v.strategy = "Expanding Influence";
} else if (mID === "josh") {
if (roll < 45) v.strategy = "Hunting";
else if (roll < 75) v.strategy = "Expanding Influence";
else if (roll < 95) v.strategy = "Consolidating Power";
else v.strategy = "Sowing Discord";
} else if (mID === "jasper") {
if (roll < 40) v.strategy = "Consolidating Power";
else if (roll < 70) v.strategy = "Fortifying Position";
else if (roll < 90) v.strategy = "Observing Campus";
else v.strategy = "Sowing Discord";
} else if (mID === "caldwell") {
if (roll < 40) v.strategy = "Sowing Discord";
else if (roll < 70) v.strategy = "Consolidating Power";
else if (roll < 90) v.strategy = "Hunting";
else v.strategy = "Expanding Influence";
}
// Timer: 3–4 turns
v.strategyTimer = Math.floor(Math.random() * 2) + 3;
// Strategies that need a rival target
if (v.strategy === "Hunting" || v.strategy === "Revenge") {
v.strategyTarget = masters.length > 0
? masters[Math.floor(Math.random() * masters.length)]
: null;
} else {
v.strategyTarget = null;
}
};/* ============================================================
KANE QUESTS — module 9
Director Kane occasionally issues a "race": the first Vice to
fully conquer a girl who has NEVER been targeted wins a reward
(a level-up scene on a girl of their choosing + 100% gauge).
============================================================ */
/* The quest target pool: girls with NO influence from anyone.
(Never been targeted = every stage is 0 and no owner.) */
setup.questUntouchedPool = function() {
var roster = State.variables.roster || [];
return roster.filter(function(c) {
/* Only girls with scenes in v2 (the 30 pool girls) — the 8
scene-less girls (alex, hazel, karlee, ...) wait for R3. */
if (setup.KEY_POOL && setup.KEY_POOL.indexOf(c.id) === -1) return false;
return c.owner === null
&& c.stages.nathan === 0 && c.stages.josh === 0
&& c.stages.jasper === 0 && c.stages.caldwell === 0;
});
};
/* Is a girl "never targeted"? */
setup.questIsUntouched = function(girlId) {
var c = (State.variables.roster || []).find(function(x) { return x.id === girlId; });
return c !== undefined
&& c.owner === null
&& c.stages.nathan === 0 && c.stages.josh === 0
&& c.stages.jasper === 0 && c.stages.caldwell === 0;
};
/* Pick a random untouched girl, or null if none exist */
setup.questPickTarget = function() {
var pool = setup.questUntouchedPool();
if (pool.length === 0) return null;
return pool.random();
};
/* The quest girl object, or null */
setup.questGirl = function() {
var q = State.variables.kaneQuest;
if (!q || !q.npcId) return null;
return (State.variables.roster || []).find(function(c) { return c.id === q.npcId; }) || null;
};
/* Winner's reward: level-up a girl of their choosing (stage 1-2 only,
never steal from someone fully conquered). Returns the girl, or null. */
setup.questRewardEligible = function(winnerId) {
var roster = State.variables.roster || [];
return roster.filter(function(c) {
var maxStage = Math.max(c.stages.nathan, c.stages.josh, c.stages.jasper, c.stages.caldwell);
return maxStage < 3 && c.stages[winnerId] < 3;
});
};
/* Apply the reward: +1 stage on the chosen girl for the winner,
claim ownership, +100 gauge. Returns the girl. */
setup.questApplyReward = function(winnerId, girlId) {
var roster = State.variables.roster || [];
var rIdx = roster.findIndex(function(c) { return c.id === girlId; });
if (rIdx === -1) return null;
var girl = roster[rIdx];
girl.stages[winnerId] = Math.min(3, girl.stages[winnerId] + 1);
/* Ownership only on a full conquest. */
if (girl.stages[winnerId] >= 3) girl.owner = winnerId;
/* imprint if unclaimed */
if (girl.imprint === null) {
girl.imprint = winnerId;
if (winnerId === "nathan") { girl.traits.pushUnique("Halo Effect"); }
else if (winnerId === "josh") { girl.traits.pushUnique("Shameless"); }
else if (winnerId === "jasper") { girl.traits.pushUnique("Unshakeable"); }
else if (winnerId === "caldwell"){ girl.traits.pushUnique("Empty Vessel"); }
}
/* +100 gauge */
State.variables.vices[winnerId].gauge = 100;
/* Track the girl claimed through the Kane challenge so she can't be
immediately stolen back by Caldwell's Eternal Anchor. */
State.variables.kaneQuest.rewardGirlId = girlId;
return girl;
};
/* Score a reward candidate according to the CPU winner's CURRENT
strategy. Completing an existing Stage 2 remains broadly valuable,
while each strategy adds its own priorities. */
setup.questRewardScore = function(winnerId, girl) {
var sv = State.variables;
var v = sv.vices[winnerId];
if (!v || !girl) return -Infinity;
var stage = girl.stages[winnerId] || 0;
var weapon = String(v.weapon || "").toLowerCase();
var score = 0;
/* Universal value: finish developed relationships, then Keys/perks. */
if (stage === 2) score += 220;
else if (stage === 1) score += 90;
if (stage > 0) score += 35;
if (v.keys.includes(girl.id)) score += 100;
else if (v.backups.includes(girl.id)) score += 50;
score += (girl.weakness[weapon] || 0) * 8;
if (setup.perkWeight) score += setup.perkWeight(winnerId, girl.id) * 8;
var targetId = v.strategyTarget;
var targetVice = targetId && sv.vices[targetId] ? sv.vices[targetId] : null;
switch (v.strategy) {
case "Survival":
if (targetId && girl.stages[targetId] > 0) score += 320;
if (v.keys.includes(girl.id) || v.backups.includes(girl.id)) score += 200;
break;
case "Elimination":
if (targetVice && targetVice.keys.includes(girl.id)) score += 400;
else if (targetVice && targetVice.backups.includes(girl.id)) score += 250;
break;
case "Fortifying Position":
if (v.keys.includes(girl.id)) score += 300;
else if (v.backups.includes(girl.id)) score += 180;
if (stage > 0) score += 80;
break;
case "Consolidating Power":
if (stage > 0) score += 180;
score += stage * 80;
break;
case "Expanding Influence":
if (Object.keys(girl.stages).every(function(k) { return girl.stages[k] === 0; })) score += 320;
if (stage === 0) score += 50;
break;
case "Sowing Discord":
if (["nathan", "josh", "jasper", "caldwell"].some(function(id) { return id !== winnerId && girl.stages[id] > 0; })) score += 320;
break;
case "Hunting":
case "Grudge Match":
case "Revenge":
if (targetId && girl.stages[targetId] > 0) score += 320;
if (targetVice && targetVice.keys.includes(girl.id)) score += 240;
break;
case "Observing Campus":
score += (girl.weakness[weapon] || 0) * 40;
break;
case "Kane Quest":
/* If the strategy has not refreshed since the win, favor the
strongest immediate consolidation rather than a random girl. */
score += stage * 60;
if (v.keys.includes(girl.id)) score += 60;
break;
}
return score;
};
/* CPU winners choose deliberately rather than receiving a fixed/random
reward. Ties are stable by roster name for reproducible saves. */
setup.questAutoPick = function(winnerId) {
var elig = setup.questRewardEligible(winnerId);
if (elig.length === 0) return null;
elig.sort(function(a, b) {
var delta = setup.questRewardScore(winnerId, b) - setup.questRewardScore(winnerId, a);
return delta !== 0 ? delta : a.name.localeCompare(b.name);
});
return elig[0];
};/* ============================================================
FOUR VICES — MODULE 7: DIALOGUE ENGINE
Contains: buildDialogue (internal), <<speech>>, <<thought>> macros
Called by: Every NPC scene passage, all Prologue passages,
Finale passages, Dossier passages
============================================================
buildDialogue() is the internal factory. It resolves the speaker's
display name and portrait path, then returns the HTML block.
Portrait resolution:
- NPCs: img/{Name}/Portrait.jpg
img/{Name}/PortraitCorr.jpg (if fully conquered by anyone)
- Masters and known special speakers: img/Player/{Name}.jpg
- Unknown/nonexistent speakers: a visible ? placeholder
Usage in passages:
<<speech "eva">>She says something.<<br>>More dialogue.<</speech>>
<<thought "nathan">>He thinks to himself.<</thought>>
============================================================ */
function buildDialogue(type, args, payload) {
var rawId = String(args[0] || "?");
var roster = State.variables.roster || [];
var vices = State.variables.vices || {};
var imgPath = "";
/* Speaker labels sometimes include a delivery note, e.g.
"Elsa (via text)" or the legacy "Caldwell recording". Resolve
portraits against the actual character name first. */
var lookupId = rawId
.replace(/\s*\([^)]*\)\s*$/, "")
.replace(/\s+recording\s*$/i, "")
.trim();
var lookupLower = lookupId.toLowerCase();
var npc = roster.find(function(c) {
return c.name.toLowerCase() === lookupLower || c.id === lookupLower;
}) || null;
var masterKey = Object.keys(vices).find(function(key) {
var v = vices[key];
return key.toLowerCase() === lookupLower
|| (v && v.name && v.name.toLowerCase() === lookupLower);
});
var master = masterKey ? vices[masterKey] : null;
/* Non-roster speakers that have dedicated Player portraits. */
var specialPortraits = {
maxwell: "Maxwell",
selene: "Selene",
spirit: "Spirit",
thornfield: "Thornfield"
};
var displayName = (typeof args[1] === "string" && args[1].trim() !== "")
? args[1]
: rawId;
if (npc) {
displayName = (typeof args[1] === "string" && args[1].trim() !== "") ? args[1] : npc.name;
var isFullyConquered = Object.values(npc.stages).some(function(s) { return s >= 3; });
imgPath = "img/" + npc.name + "/" + (isFullyConquered ? "PortraitCorr.jpg" : "Portrait.jpg");
} else if (master) {
displayName = (typeof args[1] === "string" && args[1].trim() !== "") ? args[1] : master.name;
imgPath = "img/Player/" + master.name + ".jpg";
} else if (specialPortraits[lookupLower]) {
imgPath = "img/Player/" + specialPortraits[lookupLower] + ".jpg";
}
var avatarHtml = imgPath
? '<span class="avatar" style="background-image:url(\'' + imgPath + '\');"></span>'
/* Do not reuse .avatar here: its global float/background rules can
turn an unknown speaker into an empty portrait box. This dedicated
placeholder always renders a visible centered question mark. */
: '<span class="avatar-missing" role="img" aria-label="Unknown speaker" style="float:left;display:flex!important;align-items:center;justify-content:center;width:84px;height:84px;box-sizing:border-box;margin:0 10px 0 0;border:2px solid #777;border-radius:5px;background:#111!important;background-image:none!important;font-size:42px;line-height:1;font-weight:bold;color:#ccc;">?</span>';
var cssId = lookupLower.replace(/[^a-z0-9_-]+/g, "-") || "unknown";
return (
'<div class="' + type + ' ' + cssId + '">' +
avatarHtml +
'<strong>' + displayName + '</strong>' +
'<hr>' +
payload[0].contents +
'</div>'
);
}
/* The compiled Story JavaScript may contain a stale earlier copy of these
macros. Replace it explicitly instead of allowing the old fallback
(img/Player/{unknown}.jpg) to survive. */
if (Macro.has('speech')) Macro.delete('speech');
if (Macro.has('thought')) Macro.delete('thought');
Macro.add('speech', {
tags: null,
handler: function() {
$(this.output).wiki(buildDialogue("speech", this.args, this.payload));
}
});
Macro.add('thought', {
tags: null,
handler: function() {
$(this.output).wiki(buildDialogue("thought", this.args, this.payload));
}
});<<silently>>
<<if $outcome === "ELIMINATION_SUCCESS">>
<<set _loserID to $targetMaster.id>>
<<set _winnerID to _mID>>
<<set _winnerObj to $vices[_winnerID]>>
/* Mark the loser as eliminated and bind them as a slave */
<<set $vices[_loserID].isEliminated to true>>
<<set $vices[_loserID].eliminatedBy to _winnerID>>
<<set $vices[_loserID].master to _winnerID>>
<<run $vices[_winnerID].slaves.pushUnique(_loserID)>>
/* Count how many of the loser's Full Keys the winner already holds at stage 3.
This determines which scene to load (full showdown vs backup scene). */
<<set _attackerKeysHeld to 0>>
<<for _i to 0; _i lt $targetMaster.keys.length; _i++>>
<<set _kNPC to $roster.find(c => c.id === $targetMaster.keys[_i])>>
<<if _kNPC and _kNPC.owner === _winnerID and _kNPC.stages[_winnerID] gte 3>>
<<set _attackerKeysHeld += 1>>
<</if>>
<</for>>
/* Transfer all NPCs the loser had fully conquered to the winner */
<<for _i to 0; _i lt $roster.length; _i++>>
<<if $roster[_i].owner === _loserID && $roster[_i].stages[_loserID] >= 3>>
<<set $roster[_i].owner to _winnerID>>
<<set $roster[_i].stages[_winnerID] to 3>>
<<run $transferredNPCs.push($roster[_i])>>
<</if>>
<</for>>
/* Immediately discard every surviving AI's strategy if it still
targets the Vice who was just eliminated. This runs after subject
transfers so updateStrategy() evaluates the completed board state.
It covers Elimination first and also prevents stale Survival,
Hunting, Grudge, or Revenge targets from lingering. */
<<set _strategyViceIDs to ["nathan", "josh", "jasper", "caldwell"]>>
<<for _strategyViceID range _strategyViceIDs>>
<<set _strategyVice to $vices[_strategyViceID]>>
<<set _isCPUVice to ($playerID === "observer" or _strategyViceID !== $playerID)>>
<<if _isCPUVice
and !_strategyVice.isEliminated
and _strategyVice.strategyTarget === _loserID>>
<<run setup.updateStrategy(_strategyViceID)>>
<</if>>
<</for>>
/* Scene resolution:
- 3+ of the loser's Keys held by the winner → unique showdown scene
- Otherwise → generic backup scene */
<<if _attackerKeysHeld gte 3>>
<<set $sceneToLoad to _winnerObj.name + "_" + $targetMaster.name>>
<<else>>
<<set $sceneToLoad to $targetMaster.name + "_Backup">>
<</if>>
<<if not Story.has($sceneToLoad)>> <<set $sceneToLoad to $targetMaster.name + "_Backup">> <</if>>
<<set $actionsTaken += 1>>
<</if>>
<</silently>><<silently>>
/* Old saves predate the per-turn attempt log. */
<<if not $attemptLog>> <<set $attemptLog to {}>> <</if>>
/* --- Protective Interception ---
Preserve the intended target and expose the swap to the UI. */
<<set _intendedTarget to $targetNPC>>
<<set _interceptor to setup.checkInterception(_intendedTarget.id, _mID)>>
<<if _interceptor !== null and _interceptor.id !== _intendedTarget.id>>
<<set $interceptionNotice to {
protectorName: _interceptor.name,
protectedName: _intendedTarget.name
}>>
<<set $targetNPC to _interceptor>>
<</if>>
/* From this point onward, rolls and failure text refer to the girl
who actually stepped into the action. */
<<set $originalTarget to $targetNPC.name>>
<<set _found to false>>
<<set _canFind to true>>
/* --- Jasper's Eclipse Bastion --- */
<<if $activeEclipse and $activeEclipse.jasperBastion !== null and $activeEclipse.jasperBastion.includes($targetNPC.id)>>
<<if _mID !== "jasper">> <<set _canFind to false>> <</if>>
<</if>>
/* --- Find Roll --- */
<<if _canFind>>
<<for _attempts to 1; _attempts lte _maxAttempts; _attempts++>>
<<set _findLevel to $targetNPC.avail[_mID]>>
<<if rollToFind(_findLevel, _mID, $targetNPC.id)>>
<<set _found to true>> <<break>>
<</if>>
<</for>>
<</if>>
/* ================================================================
FOUND
================================================================ */
<<if _found>>
<<set _mult to $targetNPC.weakness[_weapon]>>
<<set _friends to $socialMap[$targetNPC.id] || []>>
/* Bonus: Nathan's Web */
<<if $activeEclipse.nathanWeb and _mID === "nathan">>
<<if _friends.some(fID => { var r = $roster.find(r => r.id === fID); return r !== undefined and r.stages.nathan === 3; })>>
<<set _mult += 3>>
<</if>>
<</if>>
/* Bonus: Omen Event */
<<if $omenData and $omenData.master === _mID and $omenData.npc === $targetNPC.id>>
<<set _mult += 1>>
<</if>>
/* Penalty: Revenge Scent */
<<if _actor.revengeScented>>
<<set _mult to Math.max(1, _mult - 2)>>
<<set $vices[_mID].revengeScented to false>>
<</if>>
/* Repeated attempts against the same girl within one turn leave her
on guard: -30% per earlier attempt this turn (batch 42). The
penalty itself is applied inside rollToConquer (floor 20) —
mirroring rollToFind, so every rolled path pays it automatically.
Failed FINDS count too (batch 40): their penalty is applied
inside rollToFind, and the failed snoop is logged below.
The log is reset at every turn end. The attempt is logged AFTER
the roll — the engine penalty and the display both read the
PRIOR count, so the current attempt never pays for itself. */
<<set $repeatMalus to 30 * ($attemptLog[$targetNPC.id] || 0)>>
/* --- The Conquer Roll --- */
<<if rollToConquer(_mult, _mID, $targetNPC.id)>>
<<set $attemptLog[$targetNPC.id] to ($attemptLog[$targetNPC.id] || 0) + 1>>
<<gaugeSpendSuccess>>
/* --- Conquer Roll Failed ---
Sets CONQUEST_FAIL. Player_Display offers gauge spend.
CPU_Process checks inline after include. */
<<else>>
<<set $attemptLog[$targetNPC.id] to ($attemptLog[$targetNPC.id] || 0) + 1>>
<<set $outcome to "CONQUEST_FAIL">>
<<set $failures += 1>>
<<if $failures gte 2>>
<<set $actionsTaken += 1>>
<</if>>
<</if>>
/* ================================================================
NOT FOUND
Sets FIND_TOTAL_FAIL. Player_Display offers gauge spend.
CPU_Process checks inline after include.
================================================================ */
<<else>>
<<set $outcome to "FIND_TOTAL_FAIL">>
<<set $failures += 1>>
/* The snoop failed, but she noticed the attention: log the attempt
so every later push at her (find OR conquest) pays the malus.
The penalty THIS attempt paid was computed inside rollToFind from
the prior entries — store it for the display before incrementing. */
<<set $findMalus to 30 * ($attemptLog[$targetNPC.id] || 0)>>
<<set $attemptLog[$targetNPC.id] to ($attemptLog[$targetNPC.id] || 0) + 1>>
<<if $failures gte 2>>
<<set $actionsTaken += 1>>
<</if>>
<</if>>
<</silently>><<silently>>
<<set _ambushers to []>>
<<set $noCrushingDefeat to false>>
/* Every ordinary clash starts with an empty two-girl payload.
Without this reset, $clashSecondNPC from an earlier Social
Pandemic/Predator's Rush clash survives and is queued again in
every later clash at its old stage (the repeated Keisha L1 bug). */
<<set $clashChainGirlId to null>>
<<set $clashSecondNPC to null>>
/* predatorStealsThisTurn: once the Rush has spent its two steals this
turn, normal clash resolution resumes for the rest of the turn. */
<<set _rushDominates to (!$vices.josh.isEliminated
and $vices.josh.ultType === "predators_rush"
and $vices.josh.predatorTarget === _mID
and not ($vices.josh.predatorStealsThisTurn gte 2)
and !$vices.josh.predatorMirrors.includes($targetNPC.id)
and $targetNPC.stages.josh lt 3)>>
/* Predator's Rush outranks every interception: when Josh has marked the
acting master, no clash fires — the conquest resolves, and the Rush
steals it on success inside gaugeSpendSuccess. */
<<if !_scoutBypass and !_rushDominates>>
/* --- Priority 1: Nathan's Shield of Love ---
Only fires if Nathan is alive and has at least one slave.
Returns "nathan" on trigger, null otherwise. */
<<set _nathanIntercede to setup.checkNathanInterception($targetNPC, _mID)>>
<<if _nathanIntercede !== null and _nathanIntercede !== _mID>>
<<run _ambushers.push(_nathanIntercede)>>
<<set $noCrushingDefeat to true>>
<</if>>
/* --- Priority 2: Shadowing / Guarding ---
Only checked if Nathan's Shield did not fire. */
<<if _ambushers.length === 0>>
<<for _vID range ["nathan", "josh", "jasper", "caldwell"]>>
<<if _vID !== _mID && !$vices[_vID].isEliminated>>
<<if $vices[_vID].following === _mID>>
<<run _ambushers.push(_vID)>>
<<elseif $vices[_vID].following === "OWN_KEYS" && ($vices[_vID].keys.includes($targetNPC.id) || $vices[_vID].backups.includes($targetNPC.id))>>
<<run _ambushers.push(_vID)>>
<</if>>
<</if>>
<</for>>
<</if>>
<</if>>
/* --- Clash Redirect ---
If any ambusher was found, fire the Clash immediately.
The caller (ProcessAction / CPU_Process) does NOT continue after this. */
<<if _ambushers.length gt 0>>
<<set $followerID to _ambushers[0]>>
<<set $vices[$followerID].following to null>>
<<set $outcome to "CLASH">>
<<set $failures to 0>>
<<goto "Clash_Event">>
<</if>>
<</silently>><h1 style="text-align:center; color:#ffcc66; letter-spacing:2px;">DAY ONE — LATE AFTERNOON</h1>
<p style="text-align:center; color:#888;">Alina's office</p>
<div class="narrative">
<h2 style="color:#ff3333;">Josh</h2>
The clock in Alina's office showed twelve minutes left in Josh's appointment.
<img src="img/Player/Josh.jpg">
He sat at one end of the white couch with his jacket still on and the stamped make-up form folded in his pocket. A glass of water rested untouched on the table. Alina occupied the chair across from him, her file closed beside a yellow legal pad.
<img src="img/Alina/Normal.jpg">
Alina was a licensed psychologist and one of Elsa's closest friends. Elsa had asked her more than once not to give up on Josh when he stopped returning calls or left appointments early. Josh did not hate Alina. He disliked the office, the questions, and the steady patience he sometimes mistook for pity.
Alina wore a white sleeveless crop top and a yellow-striped skirt. She had written only the date and appointment time on the pad.
<<speech "Alina">> "We have twelve minutes. Do you want to use them, or would you rather sit quietly until the hour ends?" <</speech>>
<<speech "Josh">> "Elsa already got what she wanted. I showed up." <</speech>>
<<speech "Alina">> "Elsa received confirmation that you arrived. Nothing about what happens in here." <</speech>>
Josh looked at the closed file. Alina had explained the privacy rules during his first appointment, but he still checked for changes in the way she said them.
The corner of the stamped form pressed against his ribs when he shifted.
<<speech "Alina">> "Did the administration fix your exam request?" <</speech>>
Josh pulled out the form and placed it on the table.
<<speech "Josh">> "They fixed it. Caldwell added a warning while I was there." <</speech>>
<<speech "Alina">> "For the missed classes?" <</speech>>
<<speech "Josh">> "That and walking out of Bell's lecture." <</speech>>
Alina waited. She did not ask whether Caldwell had been fair, which made it easier for Josh to continue.
<<speech "Josh">> "Bell kept cutting me off. I stood up. He told me to leave, so I left. Now everyone writes it down like I threw a chair." <</speech>>
<<speech "Alina">> "Did Caldwell treat it like you threw a chair?" <</speech>>
<<speech "Josh">> "No. He said it was a warning." <</speech>>
<<speech "Alina">> "Then it sounds like a warning." <</speech>>
Josh leaned back and folded his arms. Her answer annoyed him, but not enough to start another argument.
<<speech "Josh">> "He thinks I get angry too fast." <</speech>>
<<speech "Alina">> "Do you?" <</speech>>
<<speech "Josh">> "Sometimes." <</speech>>
It was more agreement than he usually offered. Alina did not reward it with a smile or call it progress.
She turned the legal pad around and drew a short line down the center.
<<speech "Alina">> "Next time a professor cuts you off, you have two useful choices. Stay seated and ask to finish, or wait until class ends and speak privately. Walking out gives the other person the last word and leaves you with the report." <</speech>>
Josh looked at the two options.
<<speech "Josh">> "Caldwell said the same thing with more contempt." <</speech>>
<<speech "Alina">> "You can dislike the delivery and still use the advice." <</speech>>
She tore the page from the pad and placed it beside his form. Josh left it there for several seconds before folding it into his pocket with the rest.
The office clock reached the hour.
Alina picked up a blank appointment card but did not write a date on it.
<<speech "Alina">> "Elsa will not schedule the next one. If you want to come back, call me yourself." <</speech>>
<<speech "Josh">> "And if I don't?" <</speech>>
<<speech "Alina">> "Then I won't chase you." <</speech>>
Josh stood. That was the first answer all afternoon that did not feel like another hand closing around his schedule.
He left the card on the table, thanked no one, and walked out through the reception area. Alina remained in her office to finish her notes before the next appointment.
Outside, the south parking lot reflected the late-afternoon sun. Josh had just reached the curb when a dark car turned into the short drop-off lane.
Nathan was driving.
<img src="img/Player/Nathan.jpg">
Josh and Nathan saw each other around campus often. They crossed the same courtyards, used the same cafés, and shared enough friends that complete separation was impossible. Most days they handled it by looking elsewhere. If one entered a room, the other found somebody else to speak to.
Seeing Nathan outside Alina's office made that familiar avoidance harder. Josh did not want him attaching meaning to the appointment or imagining that Alina had been invited into their old history.
Aria sat in the passenger seat with a canvas internship bag at her feet. She was Nathan's girlfriend and Alina's intern in the campus wellness program. Josh knew her mostly as another person who fit easily into Nathan's life.
<img src="img/Aria/Normal.jpg">
Nathan parked. Aria stepped out and walked around the front of the car.
<<speech "Aria">> "Hey, Josh." <</speech>>
<<speech "Josh">> "Hey." <</speech>>
Under ordinary circumstances, that would have been the entire encounter. Nathan would wait until Josh passed before opening his door, and Josh would leave without looking back.
This time Nathan got out to unlock the trunk for Aria's bag. The drop-off lane placed all three of them within a few feet of one another.
<<speech "Nathan">> "Hey." <</speech>>
<<speech "Josh">> "Hey." <</speech>>
Nathan lifted Aria's tote from the trunk. A folder inside it shifted sideways, and he stopped to straighten it.
<<speech "Josh">> "Aria works here?" <</speech>>
<<speech "Nathan">> "She interns with Alina two afternoons a week." <</speech>>
<<speech "Josh">> "Didn't know that." <</speech>>
<<speech "Nathan">> "I didn't know the office moved." <</speech>>
<<speech "Josh">> "Neither did I until today." <</speech>>
Nathan's eyes dropped briefly to the stamped form protruding from Josh's jacket pocket.
<<speech "Nathan">> "Everything okay?" <</speech>>
The question was mild. Josh still felt himself brace against it.
<<speech "Josh">> "Caldwell added a warning. It's paperwork. Don't make it a thing." <</speech>>
<<speech "Nathan">> "I wasn't." <</speech>>
Aria took the tote from Nathan before either man added something sharper.
<<speech "Aria">> "I'll see you inside in a minute." <</speech>>
Josh nodded to her. He and Nathan did not say goodbye.
The exchange had been longer than most of their recent encounters and shorter than anything Josh would call a real conversation. It still left him irritated. Nathan's calm voice made Josh feel as though he had been the only one preparing for a fight, even though Nathan had done nothing beyond ask a question.
He pushed both hands into his jacket pockets and continued toward the sidewalk.
<hr>
<h2 style="color:#00ffcc;">Nathan</h2>
Nathan watched Josh cross the parking lot without looking back.
<img src="img/Player/Nathan.jpg">
The encounter had not shocked him. He and Josh saw each other often enough that avoidance had become routine: a glance across a lecture hall, one of them changing lines at the café, both pretending to check their phones when a shared friend stopped nearby.
What unsettled Nathan was that they had spoken at all.
The conversation had been ordinary. Aria's internship. The office moving. A piece of paperwork. Beneath it, Nathan had felt the same old pressure—the urge to ask one more question and the certainty that Josh would hear accusation in it. He had missed Josh for years, but the man crossing the lot was also the person who could make Nathan angry with a few clipped words.
Aria adjusted the strap of her internship bag over one shoulder. She was his girlfriend and knew better than to ask whether the exchange had fixed anything.
<img src="img/Aria/Normal.jpg">
<<speech "Aria">> "That was more than you usually say to each other." <</speech>>
<<speech "Nathan">> "Usually we don't get trapped in the same drop-off lane." <</speech>>
Aria looked toward the sidewalk where Josh had disappeared.
<<speech "Aria">> "Are you okay?" <</speech>>
Nathan closed the trunk.
<<speech "Nathan">> "I'm annoyed that he assumed I was making it a thing." <</speech>>
<<speech "Aria">> "Were you?" <</speech>>
Nathan considered it.
<<speech "Nathan">> "A little." <</speech>>
He had noticed the form and wondered why Josh was carrying it out of a psychologist's office. He had also known better than to ask. The curiosity came from the same place as his anger: Josh had once been part of his daily life, and some part of Nathan still expected to understand what was happening to him.
Aria slipped her hand into his as they crossed the lane.
<<speech "Aria">> "You stopped when he asked you to." <</speech>>
<<speech "Nathan">> "That shouldn't feel like an achievement." <</speech>>
<<speech "Aria">> "I didn't say it was." <</speech>>
The answer made him smile faintly. Aria squeezed his hand once and led him toward the entrance.
They were ten minutes early for her internship shift. The reception area was empty, and Alina's office door remained closed. Aria placed her bag beside one of the chairs and sat. Nathan took the seat next to her.
Aria interned with Alina two afternoons each week. Most of her work involved scheduling, preparing intake folders, and helping organize the wellness program's group sessions. She had told Nathan that she liked the work but still worried about making a mistake with something private or important.
She opened her bag and checked that the three folders inside had survived the drive.
<<speech "Nathan">> "You checked those before we left." <</speech>>
<<speech "Aria">> "I know." <</speech>>
She checked the tabs anyway, then returned them to the bag.
<<speech "Aria">> "Alina is letting me handle the rescheduling calls by myself today." <</speech>>
<<speech "Nathan">> "How many?" <</speech>>
<<speech "Aria">> "Four. One person never answers, one answers and immediately asks to call back, and one has changed her available hours three times." <</speech>>
<<speech "Nathan">> "What about the fourth?" <</speech>>
<<speech "Aria">> "The fourth is normal. I'm suspicious of him." <</speech>>
Nathan laughed. Aria's shoulders eased against the back of the chair, and she smiled at him.
She asked about his afternoon. Nathan told her about Isabella's notes landing in the fountain and Jasper trying to separate the pages with an old receipt. He described Marie taking over the café table with volunteer lanyards, Blake catching a drink before it spilled, and Savannah collecting cards from beneath every chair.
<<speech "Aria">> "So you like Jasper?" <</speech>>
<<speech "Nathan">> "I met him two hours ago." <</speech>>
<<speech "Aria">> "That wasn't my question." <</speech>>
Nathan thought about the easy walk from the fountain to the café and the way Jasper had noticed the tension around Josh's name without pressing him for an explanation.
<<speech "Nathan">> "Yeah. I think I do." <</speech>>
Aria rested her head briefly against his shoulder.
<<speech "Aria">> "Good." <</speech>>
They sat quietly for a moment. Through the closed office door came the faint sound of a drawer opening and papers being stacked.
Nathan looked down at their joined hands. The anger Josh left behind had not disappeared, but it no longer occupied the whole room. Aria's thumb moved across his knuckles, slow and absent-minded.
<<speech "Nathan">> "Do you want me to wait until Alina comes out?" <</speech>>
<<speech "Aria">> "Please. Otherwise I'll check those folders again." <</speech>>
<<speech "Nathan">> "We can't risk that." <</speech>>
Aria nudged his shoe with hers.
A few minutes later, the office door opened and Alina stepped into reception. She wore the same white sleeveless crop top and yellow-striped skirt from her previous appointment, now with a thin cardigan folded over one arm.
<img src="img/Alina/Normal.jpg">
<<speech "Alina">> "Sorry to keep you waiting." <</speech>>
<<speech "Aria">> "We're early." <</speech>>
Alina greeted Nathan, then nodded toward Aria's bag.
<<speech "Alina">> "Ready for the calls?" <</speech>>
<<speech "Aria">> "I think so." <</speech>>
<<speech "Nathan">> "She has checked the folders enough times for both of you." <</speech>>
Aria gave him a look, but she was smiling.
Nathan stood. Aria rose with him and wrapped one arm around his waist. He kissed her, brief and familiar, then handed her the internship bag.
<<speech "Aria">> "Text me when you get home." <</speech>>
<<speech "Nathan">> "I will." <</speech>>
The reception door opened before he could turn away. Doctor Marcus Caldwell entered with a slim folder beneath one arm, his charcoal jacket still buttoned despite the warmth outside.
<img src="img/Player/Caldwell.jpg">
Nathan knew him by reputation: philosophy professor, campus security manager, and the man whose name appeared beneath enough warnings to make students lower their voices when he passed. They had occupied the same university for years without exchanging a word.
Alina's expression remained welcoming, though her eyes went briefly to the clock. <<speech "Alina">> "Marcus, you're early." <</speech>>
<<speech "Caldwell">> "By seven minutes." <</speech>> He placed the folder on the reception counter. <<speech "Caldwell">> "I can wait." <</speech>>
The relocated wellness office explained the folder. Alina had mentioned that campus security still needed to approve its after-hours access and emergency procedure. Caldwell was there for the routine sign-off, not as one of her patients.
Alina glanced between the two men. <<speech "Alina">> "Nathan, have you met Doctor Caldwell?" <</speech>>
<<speech "Nathan">> "Not personally." <</speech>>
Caldwell offered a short nod rather than his hand. <<speech "Caldwell">> "No." <</speech>>
Aria touched Nathan's wrist once before following Alina toward the inner workroom. Nathan had already said goodbye. He could have left with them. Instead, Josh's folded form and guarded voice stayed in his mind while Caldwell stood close enough to ask.
<<speech "Nathan">> "You gave Josh a warning this afternoon." <</speech>>
Caldwell's attention settled fully on him. <<speech "Caldwell">> "Did he show it to you?" <</speech>>
<<speech "Nathan">> "He mentioned it in the parking lot." <</speech>> Nathan reached for the tote strap he had carried inside, then remembered Aria had taken the bag with her. His fingers closed on nothing. <<speech "Nathan">> "Barely." <</speech>>
<<speech "Caldwell">> "Then he also told you it was informal." <</speech>>
<<speech "Nathan">> "He called it paperwork." <</speech>>
<<speech "Caldwell">> "An accurate description." <</speech>>
The answer reduced the encounter to a completed page. Nathan thought of Josh staying in Alina's office for the full hour, then bracing over one mild question as if Nathan had reached for a bruise.
<<speech "Nathan">> "He still came here afterward." <</speech>>
Caldwell's face cooled by a degree. <<speech "Caldwell">> "His attendance at a private appointment is not information I requested, and it is not yours to provide." <</speech>>
The correction landed cleanly. Nathan felt heat rise beneath his collar, less from embarrassment than from having his intent mistaken. <<speech "Nathan">> "I'm not telling you what happened in there. I don't know what happened. I'm saying he made the effort to show up." <</speech>>
<<speech "Caldwell">> "One appointment does not erase three absences or an argument with a professor." <</speech>>
<<speech "Nathan">> "I didn't say erase it. I said count it." <</speech>>
For the first time, Caldwell looked less like a professor waiting for an appointment and more like the security manager Nathan had heard about. His gaze did not sharpen; it became still.
<<speech "Caldwell">> "If the effort becomes a pattern, it will count." <</speech>>
Nathan disliked the answer because it was orderly enough to sound fair. It also left no room for the first difficult thing a person did before a pattern existed.
<<speech "Nathan">> "People have to do it once before they can do it ten times." <</speech>>
<<speech "Caldwell">> "And the first time does not entitle them to be treated as though they have already done ten." <</speech>>
They held each other's eyes. Nathan could not accuse Caldwell of ignoring the facts; Caldwell seemed to have read every one of them. What bothered him was the confidence that a complete record and a complete person were nearly the same thing.
<<speech "Caldwell">> "You are unusually invested in the progress of someone you barely speak to." <</speech>>
Nathan's grip tightened around his car keys. <<speech "Nathan">> "We used to be friends." <</speech>>
It was the first time he had said that aloud all day. The past tense felt both honest and incomplete.
Caldwell considered him for one quiet second. Nathan had the uncomfortable impression of being moved from background detail into a file Caldwell intended to remember.
The inner door opened. Alina stepped back into reception and gestured toward her office. <<speech "Alina">> "I'm ready for you." <</speech>>
Caldwell picked up his folder. He passed Nathan without crowding him, but paused at the office door. <<speech "Caldwell">> "Then let Mr. Vance decide whether the past tense remains accurate." <</speech>>
Nathan did not answer. Caldwell entered Alina's office, and the door closed behind him.
Nathan left Aria with Alina and returned to the car. The exchange had not made him like Caldwell, but it had made dismissing him more difficult. Caldwell was not careless or obviously unfair. He was worse in a quieter way: he could reduce a painful human beginning to insufficient evidence and make the reduction sound responsible.
Josh's guarded answer still followed Nathan across the lot. They would see each other again soon; they always did. Whether they spoke next time would depend on the room, the people around them, and which one looked away first.
For now, he started the car and drove home alone.
</div>
<hr>
<div style="text-align:center; padding-bottom:35px;">
<p style="color:#888;">Day One moves toward evening.</p>
|
[[Continue — Day One Evening|ProloguePart4]]
|
[[Skip Remaining Prologue — Choose a Vice|PrologueSelection]]
</div><div style="text-align:center; margin:8px 0 0;">
<span style="font-size:0.75em; color:#666;">[[Skip the prologue — Choose a Vice|PrologueSelection]]</span>
</div>
<h1 style="text-align:center; color:#ffcc66; letter-spacing:2px;">DAY ONE — MORNING</h1>
<p style="text-align:center; color:#888;">Two days before totality</p>
<div class="narrative">
The solar eclipse had already altered the rhythm of Eldridge Hollow without changing anything supernatural. Hotels were full. The university had printed safety notices. Students argued about weather forecasts as if confidence could move clouds.
For the four men who would eventually stand at the center of it, the morning remained ordinary.
That was what made it worth remembering.
<hr>
<h2 style="color:#00ffcc;">Nathan</h2>
<img src="img/Player/Nathan.jpg">
Nathan found Kylie in the living room of their off-campus house, occupying most of the gray couch despite her small frame. She wore a bright pink halter-style crop top, distressed denim shorts, and beige wedges she had apparently decided counted as indoor shoes. One hand held her phone. The other held the mug he had been looking for.
<img src="img/Kylie/Normal.jpg">
<<speech "Nathan">> "That's mine." <</speech>>
<<speech "Kylie">> "The mug or the coffee?" <</speech>>
<<speech "Nathan">> "Both." <</speech>>
<<speech "Kylie">> "Then this is a valuable lesson about leaving possessions unattended." <</speech>>
Kylie smiled over the rim. She was Nathan's younger $relation, affectionate enough to steal from him and secure enough to assume he would make more coffee rather than take it back. Nathan reached down and moved her feet off the center cushion.
<<speech "Kylie">> "Rude." <</speech>>
<<speech "Nathan">> "You have an entire couch." <</speech>>
<<speech "Kylie">> "I had an entire couch." <</speech>> She studied him more closely. <<speech "Kylie">> "You were awake again last night." <</speech>>
Nathan looked toward the kitchen.
<<speech "Nathan">> "I slept." <</speech>>
<<speech "Kylie">> "You alphabetized the spice shelf at three in the morning." <</speech>>
<<speech "Nathan">> "It needed structure." <</speech>>
<<speech "Kylie">> "It needed you to stop thinking about Josh." <</speech>>
The name changed the room. Kylie immediately regretted using it, but she did not retreat into another joke.
<<speech "Kylie">> "Sorry. I just hate when he gets to live in your head without paying rent." <</speech>>
Nathan took the mug from her and drank what remained.
<<speech "Nathan">> "You're my favorite $relation." <</speech>>
<<speech "Kylie">> "I'm your only $relation." <</speech>>
<<speech "Nathan">> "That keeps the competition manageable." <</speech>>
A runner passed the front window in a flash of light blue and white. Kylie looked over the back of the couch. Outside, Kailey reached the end of the driveway, checked the watch strapped to her wrist, and glanced toward the house. She saw Nathan through the open curtains, slowed to a walk, then doubled back along the pavement.
Nathan carried the empty mug onto the porch as she stopped beside the front steps. Kailey ended the timer on her watch and rested one hand on the railing. Her long dark hair had been tied back for the run, and her light-blue crop top and white running shorts showed the disciplined, athletic build she maintained through early training in every season.
<img src="img/Kailey/Normal.jpg">
<<speech "Kailey">> "Morning. I wasn't sure anyone else on this street was awake." <</speech>>
<<speech "Nathan">> "Kylie made sure I was." <</speech>>
Kailey's breathing was elevated but controlled. She rolled one shoulder, then placed her right foot on the bottom step and leaned carefully into a calf stretch. Nathan noticed that she had shortened the last stride before stopping.
<<speech "Nathan">> "Is your right leg bothering you?" <</speech>>
<<speech "Kailey">> "It tightened during yesterday's intervals. Coach cut today's distance, and I'm following the plan." <</speech>>
She said the last part before he could suggest that she rest. Kailey was fiercely independent, but not reckless; being told to slow down frustrated her because discipline mattered to her, not because she ignored it.
Nathan went inside long enough to fill a glass of water. When he returned, Kailey had moved to the other leg and was studying the split times on her watch. She accepted the glass, drank half, and handed it back.
<<speech "Kailey">> "Thanks. The event crews have already blocked part of my usual route. I may start cutting past here again tomorrow." <</speech>>
<<speech "Nathan">> "You don't need permission to use the sidewalk." <</speech>>
<<speech "Kailey">> "I need Kylie not to back out of the driveway while looking at her phone." <</speech>>
From inside the house, Kylie called that she had heard her.
Kailey smiled, then looked past Nathan at the cardboard tube waiting beside the door.
<<speech "Kailey">> "Eclipse posters?" <</speech>>
Nathan's phone vibrated before he could answer. Aria had sent a reminder about delivering the posters to the literature building after breakfast, followed by the address where he would collect the remaining viewing filters.
<<speech "Nathan">> "Aria volunteered me." <</speech>>
<<speech "Kailey">> "Then I won't keep you. Are you watching totality from campus?" <</speech>>
<<speech "Nathan">> "With Aria and Kylie. We haven't settled on a location yet." <</speech>>
<<speech "Kailey">> "The track team has a section near the east lawn. If the main quad gets too crowded, there will be room there." <</speech>>
She reset her watch but did not start it immediately.
<<speech "Kailey">> "You've looked distracted for a while, Nathan. I won't ask you to explain it in the middle of my run. Just don't spend every night awake with it." <</speech>>
Nathan looked down at the empty mug in his hand. Kailey knew him mostly through shared fences, porch conversations, and years of seeing one another leave and return. That distance made the concern easier to accept.
<<speech "Nathan">> "I'm working on it." <</speech>>
Kailey nodded. She stepped back onto the sidewalk, tested her right leg once, and resumed at the restrained pace recorded in her training plan. Nathan watched until she cleared the corner without shortening her stride again.
Kylie opened the screen door behind him, now holding the eclipse safety bulletin on her phone.
<<speech "Kylie">> "We are watching together, right?" <</speech>>
Nathan looked from the route Kailey had taken to the posters waiting by the door.
<<speech "Nathan">> "Yeah. Together." <</speech>>
He followed Kylie inside and made enough breakfast for both of them before leaving for campus.
/% V3 BOOKMARK — LEAH
Expand after Kailey resumes her run or during Nathan's later training/gym route.
Leah's future extended scene should show Nathan's friendly ex through a gym meme, training invitation, or in-person crossing. Preserve Aria as Nathan's current girlfriend.
Add Leah's Normal portrait every time she appears once V3 assets exist.
%/
<hr>
<h2 style="color:#ff3333;">Josh</h2>
<img src="img/Player/Josh.jpg">
Across town, Elsa stood in front of the world-map mural with both hands holding the sides of her red skirt. Her pale pink crop top and matching sneakers made her look prepared to leave; the untouched plate on the coffee table explained why she had not.
<img src="img/Elsa/Normal.jpg">
Josh came downstairs, saw the plate, and stopped.
<<speech "Josh">> "I'm not hungry." <</speech>>
<<speech "Elsa">> "You haven't looked at it." <</speech>>
<<speech "Josh">> "Food doesn't become more persuasive when you arrange it." <</speech>>
Elsa was his older $relation, responsible by habit and stern with Josh only after softer approaches failed. She did not want to run his life. She wanted one morning in which concern did not become evidence against her.
<<speech "Elsa">> "I'm not arranging your life. I'm asking you to eat before you leave." <</speech>>
<<speech "Josh">> "And then you'll ask where I'm going, when I'll be back, whether I've called Alina—" <</speech>>
<<speech "Elsa">> "Your appointment is this afternoon. I was going to remind you once." <</speech>>
<<speech "Josh">> "Congratulations. You used it efficiently." <</speech>>
Lily entered before Elsa could answer. Josh's younger $relation wore a turquoise crop top and a yellow floral skirt, platinum hair falling loose around an open, trusting face.
<img src="img/Lily/Normal.jpg">
<<speech "Lily">> "I ate half the potatoes." <</speech>>
Elsa turned.
<<speech "Elsa">> "Those were for Josh." <</speech>>
<<speech "Lily">> "He said he wasn't hungry." <</speech>> She looked at Josh. <<speech "Lily">> "You said it really loudly." <</speech>>
A reluctant smile pulled at his mouth before he could stop it.
Lily saw it and brightened.
<<speech "Lily">> "There. Fixed." <</speech>>
<<speech "Josh">> "You stole my breakfast." <</speech>>
<<speech "Lily">> "And made my $malerel smile. Net positive." <</speech>>
Elsa sat beside the plate, some of the tension leaving her shoulders.
<<speech "Elsa">> "See Alina, eat something, and come to the eclipse with us. That's the full list." <</speech>>
<<speech "Josh">> "Gina turning it into a bar crawl?" <</speech>>
<<speech "Elsa">> "Gina doesn't plan. She knows someone with rooftop access and invited us before asking what the roof belongs to." <</speech>>
<<speech "Lily">> "That sounds fun." <</speech>>
<<speech "Josh">> "Tha's basically trespassing." <</speech>>
He picked up one piece of toast. Elsa noticed and had the discipline not to call it progress.
Josh noticed her not noticing.
That irritated him almost as much as praise would have.
He could have left then. Instead, he leaned against the wall and ate while Lily described three terrible locations for watching the eclipse. Elsa corrected the logistics without correcting Lily. Their voices crossed and doubled back, familiar enough to become background noise. Josh told himself he stayed because going upstairs would look like retreat. The truth was less comfortable: this irritating, careful house still made room for him every morning, and some part of him had not decided whether to punish it or protect it.
/% V3 BOOKMARK — HAZEL
Expand after Josh takes the toast and before he leaves.
Hazel's future extended scene should be quiet and personal: a note, snack, or hesitant visit from the childhood friend who still remembers him before the anger hardened. Do not invoke her future come-clean route or any Lust effect.
Add Hazel's Normal portrait every time she appears once V3 assets exist.
%/
<hr>
<h2 style="color:#ffcc00;">Jasper</h2>
<img src="img/Player/Jasper.jpg">
At Havenwood, Chanel stood at the kitchen island with a folder tucked beneath one arm and four unrelated tasks competing for the other. Her professional-casual clothes were already marked by a streak of flour near the cuff.
<img src="img/Chanel/Normal.jpg">
<<speech "Chanel">> "The eclipse volunteers need the folding chairs by tomorrow afternoon, Carolina needs a ride to the print shop, and the upstairs sink has developed an opinion about drainage." <</speech>>
Jasper took the folder from her before it slipped.
<<speech "Jasper">> "I'll handle the chairs and the sink. Carolina can come with me after class." <</speech>>
<<speech "Chanel">> "You also have class." <</speech>>
<<speech "Jasper">> "I've heard rumors." <</speech>>
Chanel gave him a look that belonged equally to his sociology professor and Havenwood's caretaker.
<<speech "Chanel">> "Being dependable does not require volunteering for every missing adult." <</speech>>
<<speech "Jasper">> "You're standing here doing six jobs." <</speech>>
<<speech "Chanel">> "And providing a cautionary example." <</speech>>
She trusted Jasper because he had earned it over the approximately eighteen months since he arrived at Havenwood. He respected her because she had never treated care as ownership. Neither saw the contradiction waiting inside that lesson.
Carolina entered carrying a camera bag almost as large as her torso. Her long blonde hair fell over a fitted white crop top; denim shorts and the small gold charm at her navel completed the outfit she had chosen for the print shop.
<img src="img/Carolina/Normal.jpg">
She stopped in the doorway, put one hand on her hip, and attempted a slow, composed look copied from Jade.
<<speech "Carolina">> "I require transportation." <</speech>>
Jasper stared at her.
<<speech "Jasper">> "Are you issuing a ransom demand?" <</speech>>
Her pose collapsed into laughter.
<<speech "Carolina">> "I was trying confident and mysterious." <</speech>>
<<speech "Chanel">> "You reached formal and alarming." <</speech>>
<<speech "Carolina">> "I knew something was off." <</speech>>
She crossed to Jasper and leaned against his shoulder while opening the camera bag. Carolina was his foster sister in the literal, ordinary sense: shared kitchens, thin walls, old grief, and approximately eighteen months of knowing which jokes would break the other's worst mood.
<<speech "Carolina">> "Casey said the second photograph looks childish. Caprice said Casey thinks breathing looks childish." <</speech>>
<<speech "Jasper">> "Caprice wins." <</speech>>
<<speech "Carolina">> "I knew you'd understand art." <</speech>>
Jasper looked down at the photographs, proud of the life she was building beyond Havenwood. The pride came with a small, private fear he did not voice: people who built bigger lives eventually needed smaller pieces of their old ones.
He closed the bag carefully and handed it back.
<<speech "Jasper">> "Print shop after class. You're choosing the final shot, not Casey." <</speech>>
Carolina smiled and hooked her arm through his.
<<speech "Carolina">> "That's why you're my favorite foster brother." <</speech>>
<<speech "Chanel">> "How many do you have?" <</speech>>
<<speech "Carolina">> "Competition rules are private." <</speech>>
<hr>
<h2 style="color:#bb66ff;">Caldwell</h2>
<img src="img/Player/Caldwell.jpg">
Dr. Caldwell's office had been awake before the rest of the philosophy building. A projector pattern waited frozen on one wall. Beside it, Anya stood in an orange knit crop top and light denim shorts, holding two versions of an advanced-seminar packet.
<img src="img/Anya/Normal.jpg">
<<speech "Anya">> "The first version keeps the ethics case before the authority readings. The second moves it after, which may make the discussion less defensive." <</speech>>
Caldwell took both packets and compared the tables of contents rather than looking at her.
Anya was his graduate assistant, doctoral advisee, and most reliable departmental employee. His approval mattered because he rationed it carefully enough to resemble rigor.
<<speech "Caldwell">> "The second structure is cleaner." <</speech>>
Anya's shoulders eased by a fraction.
<<speech "Anya">> "I'll revise the slides." <</speech>>
<<speech "Caldwell">> "And remove the decorative transitions. Students who require animation to follow an argument should fail, honestly." <</speech>>
A smile flickered at the corner of her mouth.
<<speech "Anya">> "I added one fade." <</speech>>
<<speech "Caldwell">> "The decline begins invisibly." <</speech>>
She placed the chosen packet on his desk, beside a schematic she did not recognize.
<<speech "Anya">> "Is that for the eclipse presentation?" <</speech>>
Caldwell covered the diagram with the other packet.
<<speech "Caldwell">> "A security-display calibration. Not your work." <</speech>>
The answer was ordinary and final. Anya accepted the boundary because Caldwell had spent years making his authority appear synonymous with competence.
<<speech "Anya">> "Keisha moved the final safety review to tomorrow evening. Adriana confirmed the observatory route." <</speech>>
<<speech "Caldwell">> "I saw the notice." <</speech>>
<<speech "Anya">> "Then I'll leave you to it." <</speech>>
At the door, she paused.
<<speech "Anya">> "The second structure really is better?" <</speech>>
Caldwell finally looked at her.
<<speech "Caldwell">> "Yes. Keep it." <</speech>>
That single confirmation followed Anya into the hallway with more weight than it deserved.
Caldwell waited until her footsteps disappeared. Then he uncovered the schematic and resumed adjusting a system that, for now, was only circuitry, light, frequency, and his belief that every will had a point at which resistance became inefficient.
Nothing answered him.
Not yet.
</div>
<hr>
<div style="text-align:center; padding-bottom:35px;">
<p style="color:#888;">Day One continues across campus.</p>
[[Continue — Day One Afternoon|ProloguePart2]]
|
[[Skip Remaining Prologue — Choose a Vice|PrologueSelection]]
</div><h1 style="text-align:center; color:#ffcc66; letter-spacing:2px;">DAY ONE — AFTERNOON</h1>
<p style="text-align:center; color:#888;">The campus begins to overlap</p>
<div class="narrative">
By lunch, eclipse posters had claimed most of the campus noticeboards. Volunteers carried boxes between buildings, administrators compared schedules, and students stopped beneath the signs long enough to argue about the weather forecast.
<h2 style="color:#00ffcc;">Nathan</h2>
Nathan, a literature student, crossed the student-union courtyard with a cardboard tube of posters beneath one arm.
<img src="img/Player/Nathan.jpg">
A gust swept across the fountain and lifted several loose pages from the stone rim. Nathan caught one against the poster tube and stepped on another before it reached the water. The last page was not as fortunate.
<<speech "Isabella">> "Please tell me that wasn't the useful one." <</speech>>
Isabella stood with an open textbook in one hand. Her pastel cardigan hung loosely around a white off-shoulder crop top, and the knees of her light jeans were heavily ripped. She retrieved the wet page by its corner and held it above the fountain.
<img src="img/Isabella/Normal.jpg">
<<speech "Nathan">> "Only the bottom got wet." <</speech>>
<<speech "Isabella">> "That is where I wrote the part I was going to pretend I understood." <</speech>>
Nathan handed over the two dry pages. Isabella placed them inside the book, then hugged him with her free arm.
They had known each other since childhood. Director Kane—Isabella's uncle and adoptive father—had been close to Nathan's late father, which had put them at the same dinners, holidays, and university functions for years. There was nothing formal left in the friendship itself.
<<speech "Isabella">> "Kylie asked me whether Dad's observatory lawn will be open during totality." <</speech>>
<<speech "Nathan">> "Do you know?" <</speech>>
<<speech "Isabella">> "Not yet. He hasn't released the final site schedule." <</speech>>
She spread the wet page over the sun-warmed stone. The notes concerned a sociology reading, with several questions written down one margin.
<<speech "Nathan">> "Is this for Chanel's class?" <</speech>>
<<speech "Isabella">> "Yes. I'm meeting someone from my study group before the next lecture." <</speech>>
The union doors opened behind them. Jasper came outside with a canvas bag over one shoulder and a coffee cup leaking slowly around a loose lid.
<img src="img/Player/Jasper.jpg">
Nathan knew the name from Isabella's study-group messages, but the two men had never spoken. Jasper was a sociology student who lived at Havenwood, the foster residence run by Chanel. He pressed the lid down, noticed Isabella, and walked over.
<<speech "Isabella">> "There you are. Jasper, this is Nathan. Nathan, Jasper." <</speech>>
Jasper shifted the cup to his other hand before shaking Nathan's.
<<speech "Jasper">> "Good to meet you." <</speech>>
<<speech "Nathan">> "You too." <</speech>>
<<speech "Isabella">> "Jasper has been stopping me from failing sociology. Nathan has been hearing me complain about studying since we were ten." <</speech>>
<<speech "Jasper">> "She isn't close to failing." <</speech>>
<<speech "Isabella">> "That is why I keep him around." <</speech>>
Jasper took the damp page and separated it from the others with an old receipt. Nathan recognized the faded Havenwood emblem on his bag.
<<speech "Nathan">> "You live at Havenwood?" <</speech>>
<<speech "Jasper">> "Yeah. You probably know Chanel, who runs the place when she isn't teaching." <</speech>>
<<speech "Nathan">> "She's teaching one of my electives this semester." <</speech>>
They compared notes about her workload and the amount of reading she assigned. From Jasper's stories, Nathan could hear the difference between living with Chanel and seeing only the professor who returned papers covered in careful comments. The subject was easy enough that neither had to search for another one.
The humanities bell rang across the courtyard. Isabella gathered the pages, found that two had stuck together, and handed the whole book to Jasper.
<<speech "Isabella">> "Can you separate those without tearing them? I have to go." <</speech>>
<<speech "Jasper">> "I'll bring them tonight." <</speech>>
She squeezed Nathan's shoulder on her way past.
<<speech "Isabella">> "Come by before eclipse day. Dad wants to see you." <</speech>>
<<speech "Nathan">> "Did he say that?" <</speech>>
<<speech "Isabella">> "He asked twice whether I had seen you. That counts." <</speech>>
She hurried toward the humanities building.
Jasper looked at the wrinkled pages in his hands. The café across the square had napkins, tables, and considerably less fountain spray. Nathan still had time before meeting Aria, so they headed there together.
<hr>
<h2 style="color:#ff3333;">Josh</h2>
Josh entered the main administration office with a missed-exam form folded in his jacket pocket.
<img src="img/Player/Josh.jpg">
The department had returned it for a missing signature even though the signature appeared on the scanned copy. After being transferred between offices all morning, Josh expected another delay and had little patience left for one.
Maya finished directing two visitors toward the registrar, then waved him to the counter. She was a young university secretary who remembered names, found missing forms, and remained cheerful through problems that made most students raise their voices. Josh found that cheerfulness tiring when he was already irritated, but Maya had solved more of his paperwork than anyone else in the building.
She wore a light-blue ribbed crop top and white shorts, and her long brown hair had been pinned away from her face with a small clip.
<img src="img/Maya/Normal.jpg">
<<speech "Maya">> "Hey Josh. I found the missing page." <</speech>>
She placed the corrected form in front of him, along with a stamped copy and a new room assignment.
Josh checked the signature.
<<speech "Josh">> "So I'm cleared for the make-up?" <</speech>>
<<speech "Maya">> "Thursday at ten. Keep the room slip because they moved it to the west building." <</speech>>
<<speech "Josh">> "Fine." <</speech>>
Maya pulled a yellow note from beneath the file.
<<speech "Maya">> "Doctor Caldwell wants to speak with you while you're here." <</speech>>
Josh looked toward the offices.
<<speech "Josh">> "Am I in trouble?" <</speech>>
<<speech "Maya">> "Nothing formal. He said it was a warning about attendance and the argument in Professor Bell's lecture." <</speech>>
Josh remembered the lecture. Bell had interrupted him twice, then told him to leave when Josh shoved his notebook into his bag and stood up. Josh had gone rather than keep arguing in front of the room. Apparently that had still been worth reporting.
<<speech "Josh">> "Great." <</speech>>
He took the yellow note and headed down the corridor.
Caldwell was both a philosophy professor and the university's security manager. Josh knew him as a blunt, watchful man who seemed to collect other people's mistakes and arrange them into patterns. He disliked Caldwell's certainty and the way the professor could make a warning sound like a conclusion. At the same time, Caldwell was direct. Josh preferred that to adults who disguised criticism as concern.
Caldwell closed a file when Josh reached the office and pointed to the chair across from his desk.
<img src="img/Player/Caldwell.jpg">
Josh sat, though he kept his jacket on and the corrected form in his hand.
<<speech "Caldwell">> "This is not detention, Mr. Vance. If it were formal discipline, you would have received written notice." <</speech>>
<<speech "Josh">> "Maya said it was a warning." <</speech>>
<<speech "Caldwell">> "It is. You have missed three morning lectures, you are already rescheduling one assessment, and you walked out of Professor Bell's class after losing your temper." <</speech>>
<<speech "Josh">> "He told me to leave." <</speech>>
<<speech "Caldwell">> "After you stood up in the middle of the discussion and told him he wasn't listening." <</speech>>
Josh shifted in the chair. That account was accurate enough to be annoying.
<<speech "Josh">> "He wasn't." <</speech>>
Caldwell did not argue the point. He opened Bell's report, then Josh's email response, showing that he had read both rather than accepting the first complaint handed to him.
<<speech "Caldwell">> "I do not think you are dangerous, and I do not think you are stupid. I think you are capable, easily provoked, and too willing to leave once a room irritates you." <</speech>>
That was how Caldwell saw him: not as a delinquent, but as a bright student creating avoidable problems because anger reached his mouth before judgment did. Josh did not like the assessment. He disliked even more that it was not entirely false.
<<speech "Josh">> "So what happens now?" <</speech>>
<<speech "Caldwell">> "You take the make-up exam on Thursday. You attend the next lecture. If another disagreement starts, remain in the room long enough to finish it without shouting or walking out." <</speech>>
<<speech "Josh">> "And if I do that, this disappears?" <</speech>>
<<speech "Caldwell">> "There is nothing to disappear yet. That is the purpose of a warning." <</speech>>
The fact that Caldwell kept calling it a warning told Josh where he stood: irritating and worth watching, but not yet a disciplinary problem. Caldwell made that clear without pretending to like him.
Josh folded the room slip around the corrected form.
<<speech "Josh">> "Fine. I'll be there." <</speech>>
Caldwell nodded once and let him go.
Back at the front counter, Maya was helping a student replace a lost identification card. She slid Josh's stamped copy toward him while continuing to explain the replacement fee.
Josh tucked the papers into his jacket.
<<speech "Josh">> "Thanks for fixing it." <</speech>>
<<speech "Maya">> "You're welcome." <</speech>>
He left with the warning still bothering him, but without giving Caldwell a new reason to add to it.
<hr>
<h2 style="color:#00ffcc;">Nathan</h2>
At the café terrace, Nathan and Jasper covered Isabella's damp notes with napkins and weighted the corners beneath sugar jars.
<div style="display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; align-items:start; margin:12px 0;">
<img src="img/Player/Nathan.jpg" style="width:100%; margin:0;">
<img src="img/Player/Jasper.jpg" style="width:100%; margin:0;">
</div>
The page nearest Jasper had begun to curl. He flattened it carefully while Nathan moved his iced coffee farther away.
Marie approached carrying a shallow box of blue and yellow volunteer lanyards. Her highlighted hair was pinned up loosely, with several strands already falling around her face.
<img src="img/Marie/Normal.jpg">
Nathan had known Marie for years. She had also been Josh's friend before the two men stopped speaking. Both of them had once wanted more from her, and Marie had turned them both down clearly. From Nathan's perspective, she had never understood how much resentment survived afterward. She knew he and Josh were no longer close, but still treated the distance like a stubborn disagreement that would eventually wear itself out.
<<speech "Marie">> "Can I use part of your table? The volunteer desk is occupied by three boxes of eclipse glasses." <</speech>>
Nathan gathered the driest notes. Marie set down the box and smiled at Jasper.
<<speech "Nathan">> "Marie, this is Jasper." <</speech>>
<<speech "Marie">> "Hi. Sorry for arriving with work." <</speech>>
<<speech "Jasper">> "We were already repairing homework." <</speech>>
Marie looked at the wrinkled pages.
<<speech "Marie">> "Isabella?" <</speech>>
Nathan nodded.
<<speech "Marie">> "She loses at least one page near that fountain every semester." <</speech>>
Blake arrived with two poster tubes beneath one arm and a cardboard drink tray balanced in the other. She wore a fitted blue shirt and frayed denim skirt, looking far more casual than she usually did at campus events.
<img src="img/Blake/Normal.jpg">
Blake was Marie's closest friend and one of the most recognizable students on campus, largely because of cheerleading and the attention that followed her. Nathan knew her from group events, but they had never spent enough time together to call each other friends. She was usually polite, guarded, and ready to leave before a casual gathering turned into an audience.
Marie shifted the lanyard box to make room. One drink tipped. Blake caught it against her wrist before it spilled and set the tray at the far end of the table.
<<speech "Blake">> "Keep the drinks away from the notes." <</speech>>
She used a clean napkin to wipe the condensation left behind, then opened the volunteer spreadsheet on her phone.
The blue lanyards belonged to filter and information volunteers. Yellow marked the crowd-route team. Marie had received two lists with different names and needed one usable roster before Adria's afternoon review.
Nathan read from the first list while Jasper found the matching lanyards. Blake checked names against the spreadsheet. Marie wrote corrections directly onto the printed copy.
<<speech "Marie">> "Are both of you coming on eclipse day?" <</speech>>
<<speech "Nathan">> "I'm going with Aria and Kylie." <</speech>>
<<speech "Jasper">> "Havenwood is bringing enough chairs for a small wedding. I'll be there." <</speech>>
<<speech "Marie">> "Good. We need people who can carry things without disappearing." <</speech>>
She reached the short list of people she had personally invited and tapped Josh's name with the end of her pen.
<<speech "Marie">> "Josh said maybe. If he comes, almost everyone from the old group will be there." <</speech>>
Nathan's hand stopped over the lanyards for a moment.
<<speech "Nathan">> "Maybe." <</speech>>
Marie nodded as if they were discussing nothing more complicated than attendance and moved to the next name. Jasper glanced at Nathan's hand, then quietly returned to sorting.
A gust scattered several blank name cards across the terrace. Savannah caught two against her white ribbed crop top and trapped another beneath her sandal before it reached the grass.
<img src="img/Savannah/Normal.jpg">
Savannah was already a friend of both men. Nathan knew her through Marie, Aria, and years of campus events; Jasper knew her through the library and Havenwood volunteer drives. That was normal for Savannah. She seemed to have a genuine connection in every part of campus and never treated one group as more important than another.
<<speech "Savannah">> "Nathan, Jasper—are these yours?" <</speech>>
<<speech "Marie">> "Unfortunately, yes." <</speech>>
Savannah collected the remaining cards beneath the neighboring chairs. There was no free seat, so she sat on the low stone border beside the table and began putting them back in alphabetical order.
She recognized several volunteers and corrected two outdated phone numbers. When she reached a first-year student assigned to crowd control, she drew a small circle beside his name.
<<speech "Savannah">> "Could he work at the filter table instead? Large groups make him nervous." <</speech>>
Marie checked the other assignments.
<<speech "Blake">> "Move the game-day volunteer to crowd control. She asked for more hours and already knows how to direct people." <</speech>>
<<speech "Marie">> "That works." <</speech>>
They switched the assignments. Blake said nothing more about it and returned to the spreadsheet.
The five of them finished the roster before Isabella's pages dried. Marie separated the lanyards into labeled bundles. Savannah stacked the blank cards. Blake closed the spreadsheet and took one of the poster tubes.
<<speech "Marie">> "Adria might actually get a readable list this time." <</speech>>
She thanked Nathan and Jasper, then carried the lanyards toward the administration building with Blake and Savannah. Halfway across the courtyard, Blake took the heavier box from Marie without interrupting the conversation.
Jasper watched them go, then lifted one of Isabella's pages. The ink had survived, although the bottom edge now curved sharply upward.
<<speech "Jasper">> "She'll complain about this all evening." <</speech>>
<<speech "Nathan">> "She'll still keep it." <</speech>>
They returned the pages to the textbook and finished their drinks before class.
<hr>
<h2 style="color:#bb66ff;">Caldwell</h2>
Caldwell had already found the conflict in the north-quad schedule when Adria arrived with a revised site plan rolled beneath her arm.
<img src="img/Player/Caldwell.jpg">
As campus security manager, Caldwell handled the officers, restricted entrances, and emergency routes for the public eclipse event. Adria handled the student side as Student Council president. Their relationship was entirely professional. She brought him problems that required security authority; he expected her to arrive with the paperwork in order.
So far, she usually did.
Adria wore a black halter dress and strapped sandals. She unrolled the map over his desk and anchored the corners with two books and his pen tray.
<img src="img/Adria/Normal.jpg">
<<speech "Adria">> "Student Affairs approved Havenwood's volunteer staging at nine tomorrow. Facilities booked the observatory-equipment delivery for the same time." <</speech>>
Two valid permit numbers sat beside the north-quad entrance. Caldwell had checked them before she arrived. Neither could simply be canceled without creating another delay.
<<speech "Caldwell">> "Show me your alternative." <</speech>>
Adria traced two routes with a red pen.
<<speech "Adria">> "The equipment crew has a fixed delivery window. Havenwood can unload from the east fifteen minutes earlier if security opens the service gate." <</speech>>
The marked schedule kept a clear lane for wheelchairs and emergency access. Caldwell compared it with his gate assignments. Adria had found the same workable answer he had, but her version included the volunteer timings he did not control.
That was why he considered her useful. She was organized, concise, and did not arrive expecting him to solve the entire problem for her.
<<speech "Caldwell">> "Adriana can open the east gate at eight-forty-five. If Havenwood runs late, the equipment delivery waits outside the quad." <</speech>>
<<speech "Adria">> "Agreed. I'll release it once the chairs are clear." <</speech>>
Caldwell wrote Adriana's name beside the gate. Adria had also left space for an alternate path if construction blocked the eastern approach again. He noted the precaution without praising it; competent preparation was what he expected from someone in her position.
<<speech "Adria">> "Marie is bringing the corrected volunteer list. Once I have that, we're ready for tomorrow's test setup." <</speech>>
<<speech "Caldwell">> "Walk the route before the vehicles arrive." <</speech>>
<<speech "Adria">> "I will." <</speech>>
She rolled the map around a clean cardboard tube and left for the student council office. Caldwell entered the approved times into his security schedule. The conflict was closed unless one of the groups ignored its arrival window, in which case it would become a simpler matter of enforcement.
He moved to the next item on his list.
<hr>
<h2 style="color:#ff3333;">Josh</h2>
Josh reached the café after the lunch crowd had thinned.
<img src="img/Player/Josh.jpg">
Marie was leaving with the empty lanyard box folded beneath her arm. Josh had known her since before his friendship with Nathan fell apart. He did not really resent her for it, she shot him down as kindly as possible. As far as Josh could tell, Marie knew they had stopped speaking but had never grasped how much of the old resentment remained. She continued greeting and inviting each of them as though enough time would eventually make the problem unimportant.
She stopped near the door rather than blocking his way.
<img src="img/Marie/Normal.jpg">
<<speech "Marie">> "Hey. I was going to message you. Most of us are watching from the main lawn on eclipse day." <</speech>>
<<speech "Josh">> "Who's most of us?" <</speech>>
<<speech "Marie">> "Blake, Savannah, probably Jasper. Nathan said he'll be with Aria and Kylie." <</speech>>
She listed Nathan as casually as everyone else. Josh put one hand into his jacket pocket, feeling the folded warning and exam form there.
<<speech "Josh">> "I'll decide where I'm watching." <</speech>>
<<speech "Marie">> "Okay. If you choose the main lawn, we'll be near the filter table." <</speech>>
Marie moved on without trying to read anything into his answer.
<<speech "Marie">> "Alina's office is across from the south lot, in case Elsa gave you the old address. They changed her office to be closer to this campus." <</speech>>
<<speech "Josh">> "She gave me both addresses." <</speech>>
<<speech "Marie">> "Then you're covered. See you around." <</speech>>
She gave him a small wave and continued across the courtyard with the box.
Claire stood near the pickup counter, scrolling through her phone while she waited for a drink. Her dark-gray cropped top and plaid skirt were neat enough for an event she had later that afternoon.
<img src="img/Claire/Normal.jpg">
Claire had once been one of Josh's closest friends. They used to waste afternoons together, share complaints about everyone else, and understand when the other wanted company without conversation. The friendship had thinned after too many canceled plans and arguments, but they still knew more about each other's habits than either admitted.
She looked up when Josh joined the line.
<<speech "Claire">> "Elsa called me." <</speech>>
Josh closed his eyes briefly.
<<speech "Josh">> "She has been busy." <</speech>>
<<speech "Claire">> "She worries. You know that." <</speech>>
<<speech "Josh">> "She also likes assigning people to check on me." <</speech>>
Claire put her phone into her bag.
<<speech "Claire">> "I'm not checking on you. I'm getting coffee." <</speech>>
Her drink arrived. She picked it up but did not leave immediately. Josh had no interest in starting an argument beside the pickup counter, and Claire's tone suggested she was not looking for one either.
She noticed the stamped form protruding from his jacket pocket.
<<speech "Claire">> "Did they approve the make-up exam?" <</speech>>
<<speech "Josh">> "Thursday." <</speech>>
<<speech "Claire">> "Good." <</speech>>
Josh's coffee was placed beside hers. He added the lid and tested that it was secure.
<<speech "Claire">> "Are you coming on eclipse day?" <</speech>>
<<speech "Josh">> "Maybe." <</speech>>
<<speech "Claire">> "All right." <</speech>>
She accepted the answer instead of pushing for another one.
<<speech "Claire">> "I'll see you around." <</speech>>
Josh nodded. Claire left for her event, and he took the opposite exit toward the parking lot.
The conversation had lasted less than five minutes and had not become a fight. Josh preferred it that way, even if he would not have admitted that to Claire. They no longer frequent the same circles and the few times they meet, it usually ends up as an argument.
He checked the time. Elsa had made his appointment with Alina for later that afternoon. He still had time to drink the coffee before deciding how late he could arrive without hearing about it for the rest of the week.
</div>
<hr>
<div style="text-align:center; padding-bottom:35px;">
<p style="color:#888;">Day One continues at Alina's office.</p>
|
[[Continue — Day One Late Afternoon|ProloguePart3]]
|
[[Skip Remaining Prologue — Choose a Vice|PrologueSelection]]
</div><h1 style="text-align:center; color:#ffcc66; letter-spacing:2px;">DAY ONE — EVENING</h1>
<p style="text-align:center; color:#888;">Places people return to</p>
<div class="narrative">
<h2 style="color:#ffcc00;">Jasper</h2>
Jasper found Melody at the long table beside the library windows. She had saved the chair next to hers with a paperback laid across the seat.
<img src="img/Player/Jasper.jpg">
The library was nearly empty. Evening light warmed the wood tables, and the librarians had already switched off half the lamps near the entrance. Jasper had spent the afternoon meeting new people; the sight of Melody waiting in their usual corner loosened a tension he had not noticed in his shoulders.
Melody was the book-club president and one of the first friends Jasper made after transferring to the university. Her pink ruffled crop top left a narrow strip of fair midriff above her white floral skirt. When she saw him, her shy expression opened into uncomplicated relief.
<img src="img/Melody/Normal.jpg">
<<speech "Melody">> "You came." <</speech>> She lifted the paperback from the chair before he reached it, then tucked her legs aside to give him room. Their shoulders touched when Jasper sat. Melody did not move away. <<speech "Melody">> "I was starting to think Carolina had buried you under those returns." <</speech>>
Jasper placed three books on the table. <<speech "Jasper">> "She left them on three different chairs. I found the last one under a blanket." <</speech>>
Melody laughed quietly and drew the books toward her. A handwritten ballot sat beneath her wrist, two titles tied at the bottom. She explained the problem in less than a minute: a long fantasy novel everyone discussed last semester, or a shorter mystery none of them had read.
<<speech "Melody">> "You have the deciding vote." <</speech>> She turned the page toward him, but her fingers remained over one corner. <<speech "Melody">> "Choose carefully. I have been avoiding this decision since lunch." <</speech>>
Jasper checked the number of available copies written beside each title. <<speech "Jasper">> "The mystery. More people can borrow it." <</speech>>
Melody made a small sound of defeat and wrote the title at the top of the announcement card. <<speech "Melody">> "I knew you would pick the responsible one." <</speech>>
<<speech "Jasper">> "You asked me because you wanted permission to pick it." <</speech>>
She looked at him, caught, then smiled. <<speech "Melody">> "Maybe." <</speech>>
The vote was finished. Melody could have packed her bag and gone home. Instead, she uncapped a purple marker and began rewriting the announcement in slow, careful letters, her elbow resting against Jasper's arm.
Jasper understood the invitation beneath the delay. She wanted him to stay while she finished. The knowledge warmed him and made him cautious at the same time. He had learned not to trust his place in a room merely because someone welcomed him once. Melody had been saving him this chair for months, and some part of him still checked whether the gesture might stop.
/% V3 BOOKMARK — KARLEE
Expand at the library table before Melody finishes the announcement.
Karlee's future extended scene should establish her as Jasper's sociology mentor through a concrete research or fieldwork question, while preserving the personal warmth already developing between Jasper and Melody.
Add Karlee's Normal portrait every time she appears once V3 assets exist.
%/
Melody leaned across him to reach the correction tape. Her hair slid over his forearm, soft and faintly scented with vanilla shampoo. <<speech "Melody">> "Hold this flat for me." <</speech>>
Jasper pinned one end of the card beneath his palm. Melody covered a crooked line, close enough that her hip pressed against his. She blushed when she noticed, but only shifted far enough to see her work.
A shadow fell across the table.
Caprice stood at the end of the row with one hand resting on the back of an empty chair. She worked the evening circulation desk and had dealt with Jasper often enough to know his name, his usual closing-time habits, and which Havenwood residents returned books through him. Her white high-neck crop top and denim shorts were casual; her long dark hair and level hazel-green gaze made the reminder in her hand feel official.
<img src="img/Caprice/Normal.jpg">
<<speech "Caprice">> "Twelve minutes." <</speech>> Her eyes moved from Jasper's hand on the announcement to Melody sitting against his arm. <<speech "Caprice">> "Whatever this is, finish it before I turn off the lights." <</speech>>
Melody's blush deepened. <<speech "Melody">> "We're working." <</speech>>
<<speech "Caprice">> "Of course." <</speech>> Caprice placed a paperback beside the announcement. It was the selected mystery, its spine creased and colored tabs visible along the pages. <<speech "Caprice">> "The reserve copy split its binding. Use mine until the replacement arrives." <</speech>>
Melody looked up at her. <<speech "Melody">> "You don't have to do that." <</speech>>
Caprice's attention had already returned to Jasper. <<speech "Caprice">> "Keep it away from Carolina." <</speech>>
<<speech "Jasper">> "I'll hold it personally." <</speech>>
The corner of Caprice's mouth moved. It was not quite a smile, but Jasper had seen enough of her to recognize the difference. She helped because she cared whether the club worked; she simply refused to make tenderness public.
<<speech "Caprice">> "Three weeks." <</speech>> She tapped the book once with a dark-painted nail and walked back toward the desk. <<speech "Caprice">> "Eleven minutes now." <</speech>>
Melody waited until Caprice was out of earshot. <<speech "Melody">> "She likes us." <</speech>>
<<speech "Jasper">> "She will revoke the book if you say that near her." <</speech>>
Melody laughed and slipped Caprice's copy carefully into her bag. She finished the announcement with Jasper still holding the corner, although the card had been flat for several minutes.
When the closing chime sounded, they left together. Melody hooked two fingers lightly around Jasper's sleeve as they crossed the darkened steps. <<speech "Melody">> "Walk me back?" <</speech>>
<<speech "Jasper">> "Yeah." <</speech>>
They took the long path toward the residence halls. Melody talked about a member who always brought the wrong edition; Jasper listened, aware of her hand occasionally brushing his and the easy expectation that he would be beside her.
At her building, she hugged him. It was quick at first, then held for one extra breath. <<speech "Melody">> "I'm glad you stayed." <</speech>>
<<speech "Jasper">> "Me too." <</speech>>
His phone vibrated after she went inside. The message came from Professor Thornfield, who supervised one of Jasper's independent projects and had recently become secretive about the work kept in his locked lab.
<strong>Tomorrow. Six o'clock. My lab. I have something to show you.</strong>
Jasper read it twice before putting the phone away. Melody's warmth still lingered against his chest as he turned toward Havenwood.
<hr>
<h2 style="color:#bb66ff;">Caldwell</h2>
Caldwell let Rae stand for several seconds before pointing to the chair across from his desk.
<img src="img/Player/Caldwell.jpg">
She had arrived prepared to argue. It showed in the set of her shoulders, the bag still hanging from one hand, and the way her platform sandals remained angled toward the door. Her short black floral sundress moved against her thighs when she finally sat and crossed one leg over the other.
<img src="img/Rae/Normal.jpg">
Adriana occupied the chair beside her. She had filed the security report and returned after changing out of uniform, her fitted black dress and sheer panels replacing the practical patrol clothes Caldwell usually saw. She worked directly beneath him in campus security and knew how to make her presence felt without interrupting.
<img src="img/Adriana/Normal.jpg">
Rae looked from Adriana to Caldwell. <<speech "Rae">> "I went back for my laptop. That's the entire crime." <</speech>> She dropped the padded case onto her knees and held it there like evidence she had already won.
Caldwell had read the report. Rae slipped through a closing staff door after hours, triggered an alarm, and continued up the stairs until Adriana repeated an order to stop. No damage. No theft. No attempt to run.
The facts required less than a minute. Rae interested him more than the report did.
She was intelligent enough to know she had broken the rule and proud enough to act as though admitting urgency would be worse than accepting punishment. Her defiance lived in small motions: chin raised, fingers tight around the case, one foot swinging beneath the chair. Caldwell suspected she expected him to humiliate her for the pleasure of winning.
He kept his voice level. <<speech "Caldwell">> "Why was the laptop still in the building?" <</speech>>
The direct question interrupted the speech Rae had prepared. Her foot stopped. <<speech "Rae">> "I left it after class. I had an assignment due at midnight, and nobody answered the department phone." <</speech>>
<<speech "Caldwell">> "So you used an exit as an entrance." <</speech>>
<<speech "Rae">> "I wasn't stealing anything." <</speech>> Rae glanced toward Adriana, searching for disagreement. Adriana gave her none—only the calm attention of the person who had seen exactly what happened.
Caldwell turned the report around. <<speech "Caldwell">> "Read the final paragraph." <</speech>>
Rae leaned forward. The motion brought her closer to the desk, close enough that Caldwell could see her eyes move line by line rather than skim. The paragraph documented unauthorized entry and failure to stop immediately. It also recorded that the property belonged to her and that she cooperated once detained.
<<speech "Rae">> "This says security warning." <</speech>> Suspicion replaced some of her anger. <<speech "Rae">> "Not conduct referral." <</speech>>
<<speech "Caldwell">> "There was no damage and no theft. I have no interest in inventing either." <</speech>>
Rae had expected cruelty and did not know what to do with accuracy. Her grip loosened around the laptop case.
Caldwell slid a pen across the desk. It stopped just short of her hand. <<speech "Caldwell">> "Sign. If you leave property behind again, call security. An officer can escort you inside without treating you as an intruder." <</speech>>
Rae read the paragraph a second time before signing. When she reached for her copy, Caldwell kept two fingers on the page until she met his eyes.
<<speech "Caldwell">> "The next incident becomes formal. Do you understand?" <</speech>>
Her blue-dark gaze held his. <<speech "Rae">> "Yes." <</speech>>
Only then did he release the paper.
Rae stood, sliding the report into her bag. Her defiance had not disappeared; it had become more deliberate. At the door she looked back once, as if recalculating the man she had expected to hate.
After she left, Adriana rose from her chair. <<speech "Adriana">> "You surprised her." <</speech>> She collected the original report, her fingers brushing the edge of his desk. <<speech "Adriana">> "She came in ready for a fight." <</speech>>
<<speech "Caldwell">> "Then she wasted her preparation." <</speech>>
Adriana's mouth curved briefly. She respected clear decisions, and Caldwell valued that she never confused firmness with noise. He watched her leave with the report tucked against her side.
The meeting had established more than a paper trail. Rae would remember that Caldwell had seen through the performance and still judged the facts rather than the attitude. Whether that earned caution, resentment, or reluctant respect did not yet matter.
He knew where the boundary was now. So did she.
<hr>
<h2 style="color:#ff3333;">Josh</h2>
Josh left the campus market with a microwave dinner in a plastic bag and no intention of speaking to anyone before he reached his car.
<img src="img/Player/Josh.jpg">
A paper grocery bag split three steps ahead of him.
One can struck the pavement and rolled toward the curb. Josh stopped it beneath his shoe before it reached the lane. The man holding the torn bag caught a jar against his chest, swore under his breath, and lowered the rest of the groceries onto a bench.
Josh recognized Jasper once he straightened. They shared Professor Reynolds's Tuesday lecture, though Jasper sat near the front and Josh chose a seat with an unobstructed path to the door. They had seen each other for weeks without speaking. Marie had supplied Jasper's name again that afternoon when she listed the people gathering on the main lawn.
<img src="img/Player/Jasper.jpg">
Jasper wore a canvas satchel with the faded Havenwood emblem stitched near the strap. He looked from the trapped can to Josh's face. <<speech "Jasper">> "Thanks. Josh, right?" <</speech>>
Josh bent, picked up the can, and handed it over. <<speech "Josh">> "You sit two rows from the front." <</speech>>
<<speech "Jasper">> "Usually." <</speech>> Jasper tested the torn seam with one thumb, then began transferring the heavier groceries into his satchel. He did not perform surprise at Josh remembering him. <<speech "Jasper">> "Your point about people behaving differently when attendance affects their grade was good." <</speech>>
Josh shifted the plastic handle of his own dinner higher in his palm. Professor Reynolds had spent ten minutes challenging that point and another five asking the room for examples that contradicted it. <<speech "Josh">> "She didn't think so." <</speech>>
<<speech "Jasper">> "She disagreed with your conclusion." <</speech>> He placed the can beside a bag of rice. <<speech "Jasper">> "She kept the question on the board for the rest of class." <</speech>>
It was not praise disguised as correction. Jasper seemed to mean that Josh had contributed something worth arguing with. That made the compliment harder to reject.
<<speech "Josh">> "Do you always translate for her?" <</speech>>
Jasper's expression remained open, but some of the ease left his shoulders. <<speech "Jasper">> "No. I live at Havenwood. I know when she's listening and when she's waiting for her turn." <</speech>>
<<speech "Josh">> "Must be convenient. Professor in class, caretaker at breakfast." <</speech>>
<<speech "Jasper">> "Sometimes." <</speech>> He tucked the split paper bag around the groceries to keep them from shifting. <<speech "Jasper">> "Sometimes it means she asks about unfinished reading before I've had coffee." <</speech>>
Josh almost smiled. He stopped short of it, but the pressure in his jaw eased.
Jasper lifted the satchel. <<speech "Jasper">> "Marie said you might be on the main lawn tomorrow." <</speech>>
<<speech "Josh">> "She said you would be there too." <</speech>>
<<speech "Jasper">> "Probably." <</speech>>
The conversation had reached a natural end. Josh could have let Jasper leave. Instead, Nathan's name pressed against the back of his teeth.
<<speech "Josh">> "Did Nathan have anything to say when she mentioned me?" <</speech>>
The question changed the space between them more than Josh intended. Jasper did not step back, but his attention sharpened. <<speech "Jasper">> "He said maybe. That was all." <</speech>>
<<speech "Josh">> "You met him today." <</speech>>
<<speech "Jasper">> "Isabella introduced us. We had coffee with Marie and the others." <</speech>>
<<speech "Josh">> "And now you're friends." <</speech>>
<<speech "Jasper">> "We had coffee." <</speech>> Jasper rested one hand over the satchel's strained zipper. <<speech "Jasper">> "I liked him. I don't know him yet." <</speech>>
The measured answer left Josh nowhere reasonable to push. He felt irritation search for a sharper question anyway.
<<speech "Josh">> "Did he tell you about me?" <</speech>>
He regretted revealing the concern as soon as the words left him.
Jasper answered without pretending not to understand. <<speech "Jasper">> "No." <</speech>>
Relief arrived tangled with something meaner. Nathan had not warned Jasper away from him. Nathan had also found Josh too unimportant to mention.
Josh could have made Jasper pay for either interpretation. He could have insulted Havenwood, Nathan, or the calm way Jasper waited without trying to soothe him. Instead, he looked at the repaired grocery load and forced his hand to loosen around the plastic dinner bag.
<<speech "Josh">> "The can's dented." <</speech>>
Jasper turned it once in his hand. <<speech "Jasper">> "It'll survive." <</speech>>
<<speech "Josh">> "Then we're done." <</speech>>
<<speech "Jasper">> "All right." <</speech>> Jasper slung the satchel carefully over one shoulder. <<speech "Jasper">> "Thanks again." <</speech>>
He continued toward the bus stop without looking back. Josh remained beside the bench for a moment, annoyed by the conversation and more annoyed that he had managed to finish it without turning the irritation into a fight.
That was supposed to count as improvement. It did not feel satisfying.
By the time he reached the south lot, Josh saw Lana leaning against her car before she called his name.
His cousin had one hip against the driver's door, a casebook on the roof, and two wrapped sandwiches beside it. Her red sunflower crop top and denim shorts made her look dressed for anywhere except another evening in the law library. Long dark hair fell over one shoulder as she watched him approach with the microwave dinner still hanging from one hand.
<img src="img/Lana/Normal.jpg">
Lana had been walking into his bad moods since they were children. She never approached carefully and never mistook his temper for a locked door. Josh found that infuriating. He also trusted it more than the concern people softened for his benefit.
<<speech "Lana">> "Take this." <</speech>> She pushed one sandwich into his free hand before he reached the car. Her fingers closed over his for a moment to make sure he held it. <<speech "Lana">> "They gave me two." <</speech>>
<<speech "Josh">> "I already bought dinner." <</speech>>
Lana looked into the translucent bag, then back at him. She did not insult the microwave tray. <<speech "Lana">> "Then you have lunch tomorrow." <</speech>>
Josh placed the sandwich on top of the tray and leaned beside her. Their shoulders almost touched. Lana opened her own wrapper, and for a while the only sound between them was paper and the occasional car moving through the lot.
She let him finish several bites before speaking. <<speech "Lana">> "Grandma's birthday is Sunday." <</speech>>
Josh closed his eyes. <<speech "Josh">> "I forgot." <</speech>>
<<speech "Lana">> "She didn't." <</speech>> Lana bumped her shoulder against his, not gently enough to be mistaken for comfort. <<speech "Lana">> "Tell me by Saturday. If you come, I'll keep Uncle Dean away from you." <</speech>>
That offer carried years of family dinners inside it. Uncle Dean liked asking Josh about school, jobs, and plans, then correcting every answer. Lana had redirected him before—sometimes by starting an argument large enough to become the new center of the table.
<<speech "Josh">> "Saturday." <</speech>>
Lana accepted it. She did not ask for a promise.
Josh knew the next subject before she looked at him again. He felt his jaw tighten and hated that she could probably see it.
<<speech "Lana">> "Elsa said you stayed for the appointment." <</speech>> Her voice had lost its usual edge. <<speech "Lana">> "The whole hour?" <</speech>>
<<speech "Josh">> "Yeah." <</speech>>
Lana nodded and took another bite.
Josh waited for praise, questions, or a warning about wasting Alina's time. None came. The silence stretched until he had to look at her.
<<speech "Josh">> "That's all?" <</speech>>
<<speech "Lana">> "That's all." <</speech>> She reached up and flattened the collar of his jacket where it had folded beneath itself. The familiar gesture was quick, almost rough. <<speech "Lana">> "You look tired. Go home after you eat." <</speech>>
Her concern usually arrived sharpened into an argument because neither of them liked being seen while vulnerable. Tonight she had chosen not to use the opening. Josh felt grateful, which immediately made him defensive; he swallowed the response before it reached his mouth.
A pair of headlights crossed them as a car pulled away. Lana gathered the empty wrappers and lifted her casebook from the roof.
<<speech "Josh">> "Thanks for the sandwich." <</speech>>
She paused with the driver's door open, surprise passing briefly over her face. <<speech "Lana">> "You're welcome." <</speech>> Then the sharper cousin returned. <<speech "Lana">> "Text Elsa. She sounds exhausted." <</speech>>
Josh almost told her Elsa worried too much. Instead, he took out his phone while Lana drove away.
<strong>Home soon.</strong>
Elsa answered before he reached his own car.
<strong>Okay. Drive safe.</strong>
Josh looked at the message, sandwich warm in his other hand. He let the exchange end without adding a complaint, a joke, or a reason she should not have worried.
For tonight, that was the closest he could come to admitting Lana had reached him.
</div>
<hr>
<div style="text-align:center; padding-bottom:35px;">
<p style="color:#888;">Day One ends. Tomorrow brings other obligations.</p>
|
[[Continue — Day Two|ProloguePart5]]
|
[[Skip Remaining Prologue — Choose a Vice|PrologueSelection]]
</div><h1 style="text-align:center; color:#ffcc66; letter-spacing:2px;">DAY TWO</h1>
<p style="text-align:center; color:#888;">Questions, returns, and closed doors</p>
<div class="narrative">
<h2 style="color:#ffcc00;">Jasper</h2>
Madi found Jasper in the administration lobby and stepped directly into his path.
<img src="img/Player/Jasper.jpg">
<<speech "Madi">> "There you are." <</speech>> Her smile arrived before the notebook in her hand. She was petite, freckled, and bright enough to pull attention across the gray lobby; long red hair framed a pink ruffled crop top, distressed shorts, and the strawberry charm at her navel. <<speech "Madi">> "I have been trying to catch you alone all morning." <</speech>>
<img src="img/Madi/Normal.jpg">
Madi wrote for the campus paper and treated curiosity like a reason to befriend people rather than corner them. Jasper knew her from hallways, student events, and the occasional question shouted across the quad. They had never spoken long enough for her to close the notebook afterward.
<<speech "Jasper">> "That sounds threatening when you say it with a pen ready." <</speech>>
<<speech "Madi">> "It's a short interview." <</speech>> She caught the sleeve of his jacket before he could move around her, her fingers light but confident. <<speech "Madi">> "I'm writing about students who live somewhere other than the regular dorms. Havenwood gets one paragraph, and you get to stop me from making it inaccurate." <</speech>>
Jasper had come to deliver a signed resident form for Chanel. The task was already finished. He could have left, but Madi's hand remained looped loosely around his sleeve and her green eyes held no suspicion—only genuine interest.
He let her guide him toward the tall windows.
/% V3 BOOKMARK — ALEX
Expand after Madi draws Jasper toward the windows.
Alex's future extended scene should join Madi's reporting through a concrete inconsistency or follow-up question, establishing their investigative partnership without turning Jasper or Havenwood into a supernatural case before the awakenings.
Add Alex's Normal portrait every time she appears once V3 assets exist.
%/
Madi positioned him in the light, then reached up and flattened the collar she had wrinkled. The quick touch made Jasper more aware of how close she stood. <<speech "Madi">> "One photo first. Try not to look like you're being processed for a crime." <</speech>>
<<speech "Jasper">> "This is my normal administrative face." <</speech>>
Her laugh softened the shutter click.
The questions themselves were simple. Jasper told her he had moved into Havenwood about a year and a half earlier—long enough to become part of its routines, but not someone who had grown up there. He answered her other questions while Madi moved between writing and watching him, often forgetting to look down at the page.
<<speech "Jasper">> "People think leaving is the only proof that the place worked." <</speech>> He glanced at the form counter behind her. <<speech "Jasper">> "Most of us leave when we're ready. We still come back for dinner." <</speech>>
Madi's pen slowed. <<speech "Madi">> "That's better than the line I wrote." <</speech>>
A door opened along the faculty corridor.
Caldwell emerged with a folder beneath one arm. He was a philosophy professor and the university's security manager, a combination Jasper associated with locked doors and rules written after somebody had already been hurt by them. They knew each other by name and reputation, but had never held a real conversation.
<img src="img/Player/Caldwell.jpg">
Caldwell's attention moved from Madi's notebook to Jasper. It lingered just long enough to feel deliberate.
<<speech "Caldwell">> "Mr. Jasper." <</speech>> He approached without hurry. <<speech "Caldwell">> "Professor Thornfield has logged an unusual amount of after-hours laboratory access under your project." <</speech>>
Jasper felt his shoulders tighten beneath the collar Madi had straightened. <<speech "Jasper">> "He supervises the work. You can ask him about the hours." <</speech>>
<<speech "Caldwell">> "I intend to." <</speech>>
Madi stood between them with her notebook half-raised, visibly delighted by the sudden possibility of a second story. Jasper could almost hear the questions forming.
Before she chose one, Chanel crossed the lobby from the opposite corridor. She had attended a faculty meeting upstairs and carried a leather portfolio against her fitted pink dress. At Havenwood she was Jasper's caretaker and the person who kept the house running; on campus she was Professor Chanel Reynolds, with authority of her own.
<img src="img/Chanel/Normal.jpg">
She came to Jasper's side, her hand settling briefly between his shoulder blades. The touch was warm, familiar, and grounding.
<<speech "Chanel">> "Is there a problem with Jasper's project?" <</speech>> Her attention stayed on Caldwell even while her fingers remained against Jasper's back.
<<speech "Caldwell">> "A question about the access log. Nothing more." <</speech>>
<<speech "Chanel">> "Then Thornfield can answer it. Jasper is the student, not the laboratory manager." <</speech>>
Caldwell's expression barely changed. His gaze returned to Jasper before he stepped away. <<speech "Caldwell">> "Six o'clock, isn't it? I hope the project justifies the secrecy." <</speech>>
He continued down the hall.
Madi waited until the elevator doors closed behind him. <<speech "Madi">> "Was all of that off the record?" <</speech>>
<<speech "Jasper">> "All of what?" <</speech>>
Her grin widened. Chanel's hand left his back only after the tension in his shoulders eased.
Madi closed the notebook instead of pressing him. <<speech "Madi">> "Can I visit Havenwood sometime? Not for that." <</speech>> She nodded toward the elevator. <<speech "Madi">> "For the paragraph. And maybe dinner." <</speech>>
Jasper looked at Chanel. She gave him the decision.
<<speech "Jasper">> "Come tomorrow. Carolina will show you the garden before anyone feeds you." <</speech>>
Madi's excitement returned to her whole body. She squeezed his forearm, promised to text first, and hurried toward the newsroom with the notebook held to her chest.
Jasper watched her leave. Caldwell had made Thornfield's invitation feel heavier. Madi and Chanel had made the lobby feel like his ground again.
<hr>
<h2 style="color:#ffcc00;">Jasper</h2>
Casey still had a key to Havenwood. She used it without knocking and walked into the living room carrying a paper bag that smelled of fried food.
<img src="img/Player/Jasper.jpg">
Jasper sat on the floor beside Carolina, surrounded by the photographs she had collected from the print shop. Carolina's blonde hair fell over one shoulder as she arranged the pictures across the rug, her white crop top and denim shorts unchanged from the morning she first showed him the camera bag.
<img src="img/Carolina/Normal.jpg">
She was Jasper's foster sister in every way that mattered. During the roughly eighteen months since he arrived at Havenwood, they had shared kitchens, late-night hallway talks, bad moods, and enough ordinary days to learn when the other needed noise and when they needed quiet. Casey had grown up at Havenwood before Jasper arrived. She had since moved out and built a life elsewhere, but kept returning while insisting the visits meant nothing.
Casey kicked the door closed behind her. Her red varsity jacket hung open over a black top, and her long dark hair was wind-tangled around a face already prepared to deny concern.
<img src="img/Casey/Normal.jpg">
<<speech "Casey">> "I brought food because I assumed neither of you had remembered dinner." <</speech>> She dropped the bag on the coffee table, then looked down at the photographs. <<speech "Casey">> "Why does the carpet look like a crime board?" <</speech>>
Carolina patted the space beside her. <<speech "Carolina">> "Help me choose the final three." <</speech>>
<<speech "Casey">> "Absolutely not." <</speech>> Casey removed her jacket, sat in the exact place Carolina had indicated, and reached for the nearest print.
Jasper hid a smile.
The photographs gave Casey nowhere to place her usual distance. She held each one close, studying light, framing, and the expressions Carolina had caught around Havenwood. When she disliked something, she said so quickly. When she liked it, she went quiet and placed it near her knee.
Carolina noticed the pattern. She shifted closer until her bare thigh pressed against Casey's jeans. <<speech "Carolina">> "You picked four." <</speech>>
<<speech "Casey">> "Then eliminate one." <</speech>>
<<speech "Carolina">> "I asked you because I can't." <</speech>>
Casey exhaled through her nose, but her sharp expression softened when Carolina leaned against her shoulder. She chose a photograph of the Havenwood dining table after dinner: empty plates, three abandoned mugs, Chanel's hand blurred at one edge, and Casey herself laughing in the background before she realized a camera was pointed at her.
<<speech "Casey">> "Not this one." <</speech>> She tried to slide it back into the rejected pile.
Carolina caught her wrist. <<speech "Carolina">> "That's my favorite." <</speech>>
Casey looked at the photograph again. Jasper saw the exact moment the joke she had prepared failed to arrive.
<<speech "Casey">> "I look stupid." <</speech>>
<<speech "Jasper">> "You look happy." <</speech>>
Her eyes moved to him, sharp from reflex, but Jasper stayed where he was. Carolina still held her wrist.
Casey turned the photograph face-down without moving it to either pile. <<speech "Casey">> "Pick the other two first." <</speech>>
That was as close to surrender as she intended to come.
They ate from the paper cartons on the floor. Casey stole Jasper's fork after losing hers beneath the photographs. Carolina rested against her side, and Casey complained about the weight while making no effort to move.
Jasper felt the old relief he always tried not to show when Casey returned. She had left Havenwood, but she still carried the key. She still bought enough food for three. Every visit argued against the part of him that believed people only came back until they found somewhere better.
When the final prints were stacked, Carolina kept the dining-table photograph on top.
Casey saw it and rolled her eyes. She did not tell her to remove it.
<hr>
<h2 style="color:#00ffcc;">Nathan</h2>
Lulu had taken the chair beside Nathan rather than the one across from him.
<img src="img/Player/Nathan.jpg">
They met regularly after literature lectures, usually with notebooks open and enough coffee to make the afternoon feel shorter. Lulu was his most reliable study partner: thoughtful, diligent, and shy until a book gave her something specific to argue about.
Her white cable-knit crop top showed a smooth strip of midriff above a short pink-and-yellow plaid skirt. Long black hair fell over one shoulder as she drew Nathan's paper toward herself, their forearms touching along the table.
<img src="img/Lulu/Normal.jpg">
<<speech "Lulu">> "You crossed out the best sentence." <</speech>> Her fingertip followed the heavy line of ink near the bottom of the page. <<speech "Lulu">> "This one sounded like you." <</speech>>
<<speech "Nathan">> "That's why I crossed it out." <</speech>>
Lulu looked up. Warm almond-shaped eyes held his for a beat longer than the joke required. <<speech "Lulu">> "Put it back." <</speech>>
She slid the pen into his hand and folded his fingers around it. The touch was soft, deliberate, and gone before Nathan could decide whether he had imagined the intention behind it.
He had a girlfriend. Lulu knew Aria and respected the relationship. Her admiration lived in smaller spaces: saved seats, remembered comments, the way she listened when Nathan spoke and then repeated his point more clearly than he had.
Nathan rewrote the sentence. Lulu smiled and leaned closer to read over his wrist.
/% V3 BOOKMARK — SYBIL
Expand during the café/study transition before Elsa and Jade arrive.
Sybil's future extended scene should move naturally through the social space, remember Nathan and Lulu's usual orders, and include a quieter personal exchange with Jasper only if he joins the location in the expanded version.
Add Sybil's Normal portrait every time she appears once V3 assets exist.
%/
Elsa's voice reached him from behind. <<speech "Elsa">> "I knew I'd find you with a book open." <</speech>>
Nathan turned. Elsa approached with Jade beside her, her platinum hair loose around the pale pink crop top and red skirt she wore that afternoon.
<img src="img/Elsa/Normal.jpg">
Elsa had remained Nathan's close friend even after his friendship with Josh collapsed. Jade belonged to Elsa's tighter circle: practical, observant, and familiar to Nathan from group gatherings without ever becoming his friend in her own right.
Jade wore a fitted red crop top, black frayed shorts, and red platform heels tied at the ankles. Her long black hair and composed expression gave her a polished stillness beside Elsa's visible fatigue.
<img src="img/Jade/Normal.jpg">
Lulu gathered her notes. Nathan noticed the small pause before she moved her arm away from his. <<speech "Lulu">> "I should go before you make me rewrite mine too." <</speech>> She smiled at Elsa and Jade, then touched Nathan's shoulder as she passed. <<speech "Lulu">> "Keep the sentence." <</speech>>
Nathan promised he would.
Elsa took the chair Lulu had left. Jade sat across from them, setting two untouched coffees on the table. Elsa's phone lit up beside her hand. Her eyes dropped to it immediately.
Jade reached across and turned the screen face-down with two fingers. <<speech "Jade">> "If it's urgent, they will call." <</speech>> Her voice was gentle, not scolding. She pushed one coffee toward Elsa. <<speech "Jade">> "Drink before it gets cold." <</speech>>
Elsa wrapped both hands around the cup. The tension in her shoulders did not vanish, but it stopped climbing.
Nathan understood without asking whose message she had expected. Jade met his eyes and gave the smallest shake of her head: not now. He respected it.
Instead, Jade nodded toward the paper Lulu had marked. <<speech "Jade">> "Is that the famous notebook?" <</speech>>
<<speech "Nathan">> "This is the less embarrassing one." <</speech>>
She held out her hand. Nathan passed it over. Jade read only the paragraph visible on the open page; she did not flip backward or treat permission as unlimited access.
<<speech "Jade">> "Your study partner was right about the last sentence." <</speech>> She returned the notebook with care. <<speech "Jade">> "It sounds honest." <</speech>>
Nathan looked at the line Lulu had made him restore. Two women he barely knew in the same way had noticed the same thing.
Elsa took her first drink. Jade moved the phone farther from her hand and began telling Nathan about a disastrous presentation in which the projector displayed the speaker's private grocery list instead of the slides. Elsa laughed before the story was finished.
Nathan saw what Jade contributed to the friendship: not control, not a plan for fixing Elsa, but the ability to place one ordinary thing between her and the worry long enough for Elsa to breathe.
By the time they left, Elsa's coffee was empty and her phone had remained face-down.
<hr>
<h2 style="color:#bb66ff;">Caldwell</h2>
Lacy entered Caldwell's office without waiting for permission.
<img src="img/Player/Caldwell.jpg">
She was the mayor's daughter and carried that fact in the confident angle of her chin, the expensive perfume that reached his desk before she did, and the tight light-blue one-shoulder dress gathered along her hips. Long auburn hair fell in careful waves around green eyes that assessed the room as if deciding what might be useful.
<img src="img/Lacy/Normal.jpg">
Lacy placed a parking citation on Caldwell's desk and kept two fingers over it. <<speech "Lacy">> "This is a mistake." <</speech>> She leaned forward, close enough that the neckline of her dress shifted with the movement. <<speech "Lacy">> "The space beside the administration entrance is used by my father's office." <</speech>>
Caldwell read the citation without asking her to sit. The vehicle was registered to Lacy, not the mayor's office. The space was marked for university staff.
<<speech "Caldwell">> "Were you driving a municipal vehicle?" <</speech>>
<<speech "Lacy">> "You know I wasn't." <</speech>> Her smile arrived, polished and faintly flirtatious, as though allowing him into a shared joke. <<speech "Lacy">> "But you also know who sends half the donors through this building." <</speech>>
She expected charm, proximity, and her father's name to complete the work. Caldwell found the technique transparent but not ineffective in general. Lacy was beautiful, socially precise, and accustomed to watching people decide that pleasing her was easier than refusing.
He slid the citation out from beneath her fingers. <<speech "Caldwell">> "The appeal form is on the second page." <</speech>>
Her smile held, but the warmth left it. <<speech "Lacy">> "I didn't come here for a form." <</speech>>
<<speech "Caldwell">> "Then you came to the wrong office." <</speech>>
Lacy straightened. The movement placed distance between them, but her eyes sharpened with interest rather than embarrassment. Caldwell had denied the favor without raising his voice or pretending not to understand what she offered.
She picked up the citation and traced one nail along its folded edge. <<speech "Lacy">> "My father may call you." <</speech>>
<<speech "Caldwell">> "He has my number." <</speech>>
For one second, the social queen looked less offended than intrigued. Then she turned, the short blue dress moving against her thighs as she crossed toward the door.
<<speech "Lacy">> "I'll remember this, Doctor." <</speech>>
Caldwell watched her leave. He believed her.
Lacy treated people as doors: charm opened some, pressure opened others, and her father's influence kept most from locking. Caldwell had remained closed. The next time she approached him, she would come prepared for resistance.
He found himself looking forward to it.
<hr>
<h2 style="color:#ffcc00;">Jasper</h2>
At six o'clock, Jasper stood outside Professor Thornfield's locked laboratory with Madi's photograph still saved on his phone and Carolina's selected prints tucked safely at Havenwood.
<img src="img/Player/Jasper.jpg">
The laboratory door opened before he knocked.
Professor Thornfield was an older researcher who had supervised Jasper's independent work for months. He had taught him how scent altered memory, how familiarity shaped trust, and how small environmental details could change whether someone relaxed or withdrew. Lately, he had stopped sharing the full purpose of the experiments.
<img src="img/Player/Thornfield.jpg">
<<speech "Thornfield">> "Inside." <</speech>> He stepped back, his lab coat brushing the edge of the door. <<speech "Thornfield">> "Close it." <</speech>>
The room smelled of alcohol wipes, dried herbs, and warm glass. Most of the workbench had been cleared. A narrow wooden case waited beneath the central lamp.
Jasper approached it slowly. <<speech "Jasper">> "Caldwell asked about my access hours." <</speech>>
Thornfield's hands paused over the case. <<speech "Thornfield">> "Caldwell asks about anything he cannot supervise." <</speech>> He released two brass clasps but kept the lid closed. <<speech "Thornfield">> "Did you tell him what we were doing?" <</speech>>
<<speech "Jasper">> "You haven't told me what we're doing." <</speech>>
That earned a dry glance. Thornfield opened the case.
Three small vials rested in dark felt beside a silver atomizer. One liquid was pale gold, one amber, and one almost clear. Their stoppers were sealed with wax. Nothing glowed or moved. They looked like expensive perfume samples, not the answer to months of secrecy.
Thornfield lifted the gold vial between two fingers. <<speech "Thornfield">> "The base formula strengthens familiarity. People remain themselves. They simply find it easier to lower their guard around the wearer." <</speech>>
Jasper stared at the vial. The words should have excited the part of him that wanted every room to feel safe. Instead, he thought of Melody saving the chair, Casey returning with a key, and Chanel's hand steady against his back. None of those moments needed help from a bottle.
<<speech "Jasper">> "Have you tested it on anyone?" <</speech>>
<<speech "Thornfield">> "Only controlled scent-response trials. No behavioral commands." <</speech>> Thornfield returned the vial to its place. <<speech "Thornfield">> "The compound is stable. What remains uncertain is how long it holds once exposed to air." <</speech>>
He closed the lid and pushed the case toward Jasper.
Jasper did not touch it immediately. <<speech "Jasper">> "Why give it to me?" <</speech>>
Thornfield leaned both hands against the workbench. <<speech "Thornfield">> "Because people already trust you. I need to know whether the formula strengthens what exists or manufactures something false." <</speech>>
The answer pressed directly against Jasper's oldest fear. He wanted people to stay because they chose him, not because a house, a debt, or a scent made leaving difficult.
<<speech "Jasper">> "And if it manufactures it?" <</speech>>
<<speech "Thornfield">> "Then you keep the case sealed and bring it back." <</speech>>
Thornfield placed a small key beside it. His fingers remained there until Jasper finally reached forward.
The wooden case was lighter than Jasper expected. It settled into his palms with no pulse, warmth, or impossible reaction—only polished edges and the faintest trace of chamomile escaping through the seals.
<<speech "Thornfield">> "Do not open it tonight. The final stabilizer needs until morning." <</speech>>
Jasper closed his fingers around the key. <<speech "Jasper">> "You could have told me this before Caldwell noticed the hours." <</speech>>
<<speech "Thornfield">> "You would have worried for an extra week." <</speech>>
<<speech "Jasper">> "I'm worried now." <</speech>>
Thornfield's expression softened by a degree. <<speech "Thornfield">> "Good. Careless people should never hold something like this." <</speech>>
Jasper placed the case inside his canvas bag and pulled the zipper closed. The weight against his side was small. The question inside it was not.
He left the laboratory without opening the seals.
</div>
<hr>
<div style="text-align:center; padding-bottom:35px;">
<p style="color:#888;">Day Two moves toward evening.</p>
|
[[Continue — Day Two Evening|ProloguePart6]]
|
[[Skip Remaining Prologue — Choose a Vice|PrologueSelection]]
</div><<silently>>
<<set _nIdx to $roster.findIndex(c => c.id === $anchorTarget.id)>>
<<set _npc to $roster[_nIdx]>>
/* 1. Caldwell gains a stage (preserve existing progress, cap at 3) */
<<set $roster[_nIdx].stages.caldwell to Math.min(3, _npc.stages.caldwell + 1)>>
/* 1b. Kane's Quest — completing the marked girl via the Anchor wins the race */
<<if $kaneQuest.active and $roster[_nIdx].id === $kaneQuest.npcId and $roster[_nIdx].stages.caldwell gte 3>>
<<set $kaneQuest.active to false>>
<<set $kaneQuest.winner to "caldwell">>
<</if>>
/* 2. Imprint */
<<if $roster[_nIdx].imprint === null>>
<<set $roster[_nIdx].imprint to "caldwell">>
<<run $roster[_nIdx].traits.pushUnique("Empty Vessel")>>
<</if>>
/* 3. Wary → Invested transition */
<<if $roster[_nIdx].traits.includes("Wary") and $roster[_nIdx].stages.caldwell === 1>>
<<set _waryIdx to $roster[_nIdx].traits.indexOf("Wary")>>
<<if _waryIdx gte 0>> <<run $roster[_nIdx].traits.splice(_waryIdx, 1)>> <</if>>
<<run $roster[_nIdx].traits.pushUnique("Invested")>>
<</if>>
/* 4. Rival penalty (reworked batch 42)
Every rival holding ANY progress on her always loses one stage,
with a 50% chance of losing a second stage. Full holds are no
longer torn straight to Stage 1 — the same rule applies at every
stage level. If a penalised rival was the owner (Stage 3 before
the anchor), owner is set to null; Caldwell may claim ownership
at step 5. */
<<set _penaltyLog to []>>
<<for _rID range ["nathan", "josh", "jasper"]>>
<<if $roster[_nIdx].stages[_rID] gte 1>>
<<run setup.noteReset($roster[_nIdx], [_rID])>>
<<set $roster[_nIdx].stages[_rID] -= 1>>
<<set _secondDrop to false>>
<<if $roster[_nIdx].stages[_rID] gte 1 and Math.random() lt 0.5>>
<<set $roster[_nIdx].stages[_rID] -= 1>>
<<set _secondDrop to true>>
<</if>>
<<if $roster[_nIdx].stages[_rID] lte 0>>
<<set $roster[_nIdx].stages[_rID] to 0>>
<<if $roster[_nIdx].owner === _rID>> <<set $roster[_nIdx].owner to null>> <</if>>
<<run _penaltyLog.push($vices[_rID].name + " loses all progress on " + _npc.name)>>
<<else>>
<<if $roster[_nIdx].owner === _rID>> <<set $roster[_nIdx].owner to null>> <</if>>
<<if _secondDrop>>
<<run _penaltyLog.push($vices[_rID].name + " loses two stages on " + _npc.name)>>
<<else>>
<<run _penaltyLog.push($vices[_rID].name + " loses a stage on " + _npc.name)>>
<</if>>
<</if>>
<</if>>
<</for>>
/* 5. Caldwell claims ownership after all penalties resolve —
but only a full conquest (Stage 3) grants ownership. */
<<if $roster[_nIdx].stages.caldwell gte 3>> <<set $roster[_nIdx].owner to "caldwell">> <</if>>
/* 6. Gauge gain */
<<run adjustGauge("caldwell", 20)>>
/* 7. Store state */
<<set $vices.caldwell.ultTargetName to _npc.name>>
<<set $vices.caldwell.anchorPenaltyLog to _penaltyLog>>
<<set $targetNPC to $roster[_nIdx]>>
<<set $outcome to "ANCHOR">>
<<set $actionsTaken += 1>>
/* 8. Scene resolution */
<<set $sceneToLoad to setup.sceneFor("Caldwell", _npc, "caldwell")>>
<<if not Story.has($sceneToLoad)>> <<set $sceneToLoad to "Caldwell_Generic">> <</if>>
/* 9. Clear anchor target */
<<set $anchorTarget to null>>
<</silently>>
<<if $activeTurn === $playerID>>
<<goto "Player_Display">>
<<else>>
<<set _mID to $activeTurn>>
<h1>Day $gameDay — Turn: <<print $vices[_mID].name>></h1>
<div class="cpu-log" style="border: 1px solid #00ff00; padding: 20px; background: #001100; font-family: monospace; color: #0f0; line-height: 1.5;">
<p style="color: #ffcc00;">[POWER ACTIVATED]: ETERNAL ANCHOR</p>
<p>[SYSTEM]: <<print $vices[_mID].name>> has claimed <<print $targetNPC.name>> directly.</p>
<<if $vices.caldwell.anchorPenaltyLog.length gt 0>>
<<for _entry range $vices.caldwell.anchorPenaltyLog>>
<p style="color: #ff6600;"><<print _entry>></p>
<</for>>
<<else>>
<p style="color: #888;">[No rivals were disrupted this time.]</p>
<</if>>
/* The anchor scene's own footer routes the turn onward (chain /
remaining actions / end turn) — single link, no sequence. */
<br><<link "Watch Interaction" $sceneToLoad>><</link>>
</div>
<</if>><<nobr>>
<<silently>>
<<set _anchorCPUPath to ($activeTurn !== $playerID)>>
/* CPU_Process already selected the target, spent gauge, and activated
the Ultimate. Do not execute any player-selection initialization on
this path: <<goto>> is asynchronous. */
<<if _anchorCPUPath>>
<<goto "Caldwell_AnchorExecute">>
<<else>>
<<set _anchorPlayer to $vices.caldwell>>
<<set _anchorCanPay to ($playerID === "caldwell" and _anchorPlayer.gauge gte 100 and _anchorPlayer.ultTimer lte 0)>>
<<set $anchorTarget to null>>
<<set _targets to (_anchorCanPay ? $roster.filter(function(c) {
/* Batch 42: the Anchor only lands on a girl a rival has
genuinely invested in — at least one rival at Stage 2+. */
var hasRivalProgress = c.stages.nathan >= 2 || c.stages.josh >= 2 || c.stages.jasper >= 2;
var notCaldwellMaxed = !(c.owner === "caldwell" && c.stages.caldwell >= 3);
var notQuestReward = !($kaneQuest.rewardGirlId === c.id && $kaneQuest.winner !== null && !$kaneQuest.rewardClaimed);
/* The Kane quest girl is never anchorable — during the race,
and until its reward has been fully resolved. */
var notQuestGirl = !($kaneQuest.npcId === c.id
and ($kaneQuest.active
or ($kaneQuest.winner !== null and !$kaneQuest.rewardClaimed)));
/* Kane's Mark never fades: any girl who was EVER a quest
target is permanently unanchorable. */
var notKaneMarked = !c.kaneMarked;
return hasRivalProgress && notCaldwellMaxed && notQuestReward && notQuestGirl && notKaneMarked;
}) : [])>>
/* Fully conquered rival targets have the highest disruption value. */
<<run _targets.sort(function(a, b) {
var aMax = Math.max(a.stages.nathan, a.stages.josh, a.stages.jasper);
var bMax = Math.max(b.stages.nathan, b.stages.josh, b.stages.jasper);
return bMax - aMax;
})>>
<</if>>
<</silently>>
<<if !_anchorCPUPath>>
<h3 style="color:#ff0066;">ETERNAL ANCHOR — SELECT SUBJECT</h3>
<p>Caldwell claims the selected subject directly and erodes rival influence. Only subjects a rival has raised to <strong>Stage 2 or higher</strong> can be anchored. The 100% Resonance cost is committed only when you press <strong>ANCHOR</strong>. Girls who have ever been Kane's quest targets carry his Mark permanently — they can never be anchored.</p>
<<if !_anchorCanPay>>
<<if _anchorPlayer.ultTimer gt 0>>
<p style="color:#888;">Caldwell's ultimate power is recharging — the Anchor and channeled ultimates share one slot. The next cast is available in <<print _anchorPlayer.ultTimer>> day<<if _anchorPlayer.ultTimer gt 1>>s<</if>>. Nothing has been spent.</p>
<<else>>
<p style="color:#888;">Eternal Anchor requires 100% Resonance. Nothing has been spent.</p>
<</if>>
[[Return to Hub|Hub]]
<<elseif _targets.length is 0>>
<p style="color:#888;">No suitable subject currently has a rival at Stage 2 or higher. Nothing has been spent.</p>
[[Back Without Spending|Hub]]
<<else>>
<div style="display:flex; flex-wrap:wrap; gap:15px; justify-content:center; align-items:flex-start; margin-top:20px;">
<<nobr>>
<<for _i to 0; _i lt _targets.length; _i++>>
<<set _npc to _targets[_i]>>
<<set _npcId to _npc.id>>
<<capture _npcId>>
<div style="display:block; width:190px; height:auto; min-height:0; background:#111; border:1px solid #9c27b0; border-radius:10px; overflow:hidden; text-align:center; box-sizing:border-box;">
<img @src="'img/' + $roster.find(c => c.id === _npcId).name + '/Portrait.jpg'" style="display:block; width:100%; height:auto; aspect-ratio:2/3; object-fit:contain; background:#080808;">
<div style="padding:10px;">
<strong style="color:#fff;"><<link $roster.find(c => c.id === _npcId).name>><<run setup.openSubjectFile(_npcId)>><</link>></strong><br>
<span style="font-size:0.75em; color:#aaa; line-height:1.35;">
Caldwell: <<print $roster.find(c => c.id === _npcId).stages.caldwell>>/3<br>
<<if $roster.find(c => c.id === _npcId).stages.nathan gt 0>>Nathan: <<print $roster.find(c => c.id === _npcId).stages.nathan>> <</if>>
<<if $roster.find(c => c.id === _npcId).stages.josh gt 0>>Josh: <<print $roster.find(c => c.id === _npcId).stages.josh>> <</if>>
<<if $roster.find(c => c.id === _npcId).stages.jasper gt 0>>Jasper: <<print $roster.find(c => c.id === _npcId).stages.jasper>><</if>>
</span><br><br>
<<link "ANCHOR">>
<<if $vices.caldwell.gauge gte 100>>
<<run adjustGauge("caldwell", -100)>>
<<set $vices.caldwell.ultType to "eternal_anchor">>
<<set $vices.caldwell.ultTimer to 2>>
<<set $anchorTarget to $roster.find(c => c.id === _npcId)>>
<<goto "Caldwell_AnchorExecute">>
<<else>>
<<goto "Hub">>
<</if>>
<</link>>
</div>
</div>
<</capture>>
<</for>>
<</nobr>>
</div>
<br><br>
[[Cancel Without Spending|Hub]]
<</if>>
<</if>>
<</nobr>><h1 style="text-align:center; color:#ffcc66; letter-spacing:2px;">DAY TWO — EVENING AND NIGHT</h1>
<p style="text-align:center; color:#888;">Visitors before the shadow</p>
<div class="narrative">
<h2 style="color:#bb66ff;">Caldwell</h2>
Keisha knocked twice and entered after Caldwell looked up from his desk.
<img src="img/Player/Caldwell.jpg">
She was the university's young Vice Director, responsible for turning Director Kane's broad decisions into policy, budgets, and daily administration. Caldwell managed campus security and taught philosophy. Keisha disliked having routine problems pushed high enough to require her attention, but she respected his academic work and never treated him as incompetent.
Her orange long-sleeve top fitted closely around her full figure, the keyhole at her chest softening an outfit otherwise made practical by light jeans and black flats. She carried a single security report.
<img src="img/Keisha/Normal.jpg">
Caldwell noticed the body before he accepted the page. In his private, misogynistic accounting, a woman her age did not become Vice Director through discipline and intelligence alone. He assumed Kane's favor, board politics, and Keisha's appearance had opened doors merit could not. Her competence never corrected the belief; he merely counted competence as the useful polish that helped her keep what other people had given her.
/% V3 BOOKMARK — VIOLET
Expand before Keisha's arrival as a separate advanced-seminar scene.
Violet's future extended scene should present Caldwell's star philosophy student through a serious ethics question about authority, consent, or institutional duty. Caldwell's approval remains academic; no hypnosis or Will works yet.
Add Violet's Normal portrait every time she appears once V3 assets exist.
%/
Keisha rested one hip against the corner of his desk. <<speech "Keisha">> "I reviewed the Rae incident." <</speech>> She tapped the report once beneath his hand. <<speech "Keisha">> "The warning was proportionate. No conduct referral." <</speech>>
<<speech "Caldwell">> "There was no damage and no theft. Escalating it would have wasted everyone's time." <</speech>>
<<speech "Keisha">> "Agreed." <</speech>> A little of the tiredness left her face. She had arrived expecting him to defend an unnecessary punishment and seemed relieved that he had not created one. <<speech "Keisha">> "Rae copied my office because she copies every office when she thinks a rule is unfair. Next time, send the closed report to student conduct before it reaches my desk." <</speech>>
<<speech "Caldwell">> "I did. She sent you her own copy." <</speech>>
Keisha closed her eyes for half a second. <<speech "Keisha">> "Of course she did." <</speech>>
The irritation was directed at the situation, not at him. Caldwell understood the distinction even if he rarely extended the same fairness to others.
Keisha straightened and glanced at the stack of marked essays beside his elbow. She did not look toward the closed inner room where Caldwell kept the audiovisual system. She had no reason to know it existed.
<<speech "Keisha">> "Your seminar evaluations came in with the highest response rate in the department." <</speech>> Her tone remained civil, almost warm. <<speech "Keisha">> "Whatever else people say about dealing with you, they respect you as a professor." <</speech>>
Caldwell heard the compliment and reduced it instantly to confirmation of what he already believed. <<speech "Caldwell">> "My students respond to standards." <</speech>>
<<speech "Keisha">> "They respond to knowing you take the work seriously." <</speech>> She moved toward the door with the conversation already finished. <<speech "Keisha">> "I'd prefer you spend your evenings teaching instead of making me read security complaints." <</speech>>
<<speech "Caldwell">> "On that point, Vice Director, we agree." <</speech>>
Keisha gave him a brief, knowing smile. From their previous meetings, Caldwell knew she disliked his manner rather than dismissing his mind, and civility cost neither of them anything. <<speech "Keisha">> "Good night, Doctor." <</speech>>
<<speech "Caldwell">> "Good night." <</speech>>
She left, closing the door gently behind her.
Caldwell waited until her footsteps faded, then locked the outer office and opened the concealed inner room. Keisha had concluded a minor security matter with an abrasive but capable colleague. She had never seen what waited beyond that door.
The local projector system powered on beneath a low electrical hum.
No network. No camera input. No subject. Only the test pattern, the isolated frequency module, and a synthetic attention model on the second monitor.
Caldwell ran the calibration twice.
The spiral rotated at the programmed speed. The frequency held exactly where he set it. The faceless model produced the same weak response curve it had produced the previous week.
Nothing answered his thoughts. Nothing moved without input. The machine remained clever, unfinished technology.
A knock sounded from the outer office.
Caldwell covered the controls and returned to his desk. Director Maxwell Kane entered before Caldwell invited him farther.
<img src="img/Player/Maxwell.jpg">
Kane was Isabella's guardian, the university's director, and the only administrator Caldwell could not reduce to a predictable collection of incentives. He wore authority without Keisha's need to document it. Caldwell respected that and resented it in equal measure.
<<speech "Maxwell">> "You're working late." <</speech>> Kane's attention moved to the closed inner door, then back to Caldwell. He did not ask what was behind it. <<speech "Maxwell">> "Keep the system isolated tomorrow." <</speech>>
Caldwell's face remained neutral. <<speech "Caldwell">> "Keisha doesn't know the system exists." <</speech>>
<<speech "Maxwell">> "I wasn't speaking about Keisha." <</speech>>
Kane crossed the office and rested two fingers on the audit-free stack of seminar essays, as though the late visit concerned nothing more dangerous than grading. <<speech "Maxwell">> "Do not test it on anyone before totality. Earlier results would teach you the wrong lesson." <</speech>>
A colder attention settled through Caldwell. <<speech "Caldwell">> "How much do you know?" <</speech>>
<<speech "Maxwell">> "Enough to know you can wait one more day." <</speech>> Kane looked toward the inner room again. <<speech "Maxwell">> "You value control, Marcus. Begin with your own." <</speech>>
He left without explaining the warning.
Caldwell returned to the machine. The response graph remained ordinary and flat, almost insulting after Kane's certainty.
He shut it down rather than run a third test.
For the first time that evening, patience felt less like restraint than preparation.
<hr>
<h2 style="color:#ff3333;">Josh</h2>
The occult bookstore on Maple Street should have been closed.
<img src="img/Player/Josh.jpg">
Josh passed it on his walk home from the gym, hood down, earbuds hanging loose around his neck. The neighboring shops were dark. This one held a narrow strip of amber light beneath its door, and a small brass bell sounded from inside although nobody had entered.
He kept walking for six steps.
Then he turned back.
The door opened before his hand reached it.
A woman sat behind the counter with one long leg crossed over the other. Pale silver-blonde hair fell over a black dress that seemed too elegant for the cramped shop. A crescent pendant rested between her breasts, its center filled with something dark enough to look black until it caught the light and flashed red.
<img src="img/Player/Selene.jpg">
Her eyes moved over Josh without hurry. The attention was intimate and appraising, unlike Alina's patience or Caldwell's administrative scrutiny. She looked at him as though she already knew what she wanted from him.
<<speech "Selene">> "You took your time." <</speech>>
Josh remained beside the open door. <<speech "Josh">> "Do I know you?" <</speech>>
<<speech "Selene">> "No." <</speech>> She uncrossed her legs and stood. <<speech "Selene">> "But I know your name, Joshua." <</speech>>
The door closed behind him. Josh glanced back. The lock had not moved.
<<speech "Josh">> "Open it." <</speech>>
The woman smiled and came around the counter. <<speech "Selene">> "You can leave whenever you like." <</speech>> Her voice was low, almost amused. <<speech "Selene">> "You haven't tried." <</speech>>
She was right. Josh hated that enough to stay where he was.
<<speech "Josh">> "Who are you?" <</speech>>
<<speech "Selene">> "Selene." <</speech>> She stopped within arm's reach. The pendant swayed between them. <<speech "Selene">> "I wanted to see whether the anger was as obvious up close." <</speech>>
Josh's hands curled at his sides. <<speech "Josh">> "You don't know anything about me." <</speech>>
Selene lifted one hand and placed two fingers against the center of his chest. There was no heat, compulsion, or sudden desire—only the cool pressure of her touch through his shirt. Josh caught her wrist.
Instead of pulling away, she leaned closer. <<speech "Selene">> "Good." <</speech>> Her eyes held his. <<speech "Selene">> "Keep that reflex. You'll need it." <</speech>>
Josh released her with a small shove. Selene stepped back, still smiling.
She removed the crescent pendant from her neck. The chain slid through her fingers with a faint metallic whisper. <<speech "Selene">> "Tomorrow night, after the sky has gone dark and returned, this door will open again." <</speech>>
<<speech "Josh">> "I'm not coming back." <</speech>>
<<speech "Selene">> "Then don't." <</speech>> She let the pendant hang between them, red liquid shifting inside its center. <<speech "Selene">> "Go home. Keep accepting concern as pity. Keep letting every room decide what you are before you speak." <</speech>>
The words landed because they were close enough to things Josh already told himself. That did not make her right. It made her dangerous.
He reached for the door handle. This time it turned easily.
<<speech "Josh">> "You still haven't said what you want." <</speech>>
Selene's gaze dropped briefly to his mouth, then returned to his eyes. <<speech "Selene">> "I want to know what you choose when wanting stops being something you have to ask for." <</speech>>
She closed her fingers around the pendant. She did not give it to him.
Josh stepped outside. Cold night air struck the sweat drying at the back of his neck. When he looked through the shop window, the amber light was gone and Selene was no longer behind the counter.
His phone, his keys, and the folded page from Alina were all still in his pockets. Nothing had changed. No hunger burned through him. No stranger on the pavement turned to look.
He walked home telling himself he would not return.
The lie irritated him for the entire distance.
<hr>
<h2 style="color:#00ffcc;">Nathan</h2>
Nathan went into the woods because the night was mild and he felt like walking.
<img src="img/Player/Nathan.jpg">
There had been no argument at home, no missed appointment, and no sound drawing him toward the trail. He ate dinner with Kylie, answered Aria's last message, put on a jacket, and chose the path beyond campus when the pavement split in two directions.
Before the last streetlamp disappeared behind him, he texted Eva.
<strong>Taking the creek trail for a while. Phone's on.</strong>
She answered before he put it back in his pocket.
<strong>Fine. I'm driving past the east trailhead later. Message if you want a ride.</strong>
Eva knew Nathan sometimes walked without a destination simply because he felt like being outside. She did not ask him to justify this one, and Nathan did not expect her to interrupt it.
The route was random enough that he turned twice without remembering which branch he had taken. He passed the last trail marker, followed the creek, and stopped beneath a stand of maples where moonlight reached the ground in broken patches.
He was deciding whether to turn back when every night sound stopped at once.
No insects. No water over stone. No leaves moving against one another.
Nathan held his breath. <<speech "Nathan">> "Hello?" <</speech>>
Nothing answered.
A rose-gold brightness gathered at the edge of his sight without forming a source. When he turned toward it, there was only bark, damp ground, and darkness between the trees. The brightness did not become a body, silhouette, face, or woman. It remained an impossible quality in the air—something perceived without occupying a place.
Then a single image flashed behind Nathan's eyes.
/% UI NOTE — `Spirit.jpg` is a symbolic candle-flame portrait only. It is not a body, face, woman, or physical object Nathan sees on the trail. %/
<img src="img/Player/Spirit.jpg">
It resembled a candle flame against darkness: small, bright, and detached from any candle he could see. The image was symbolic, a mental illustration his thoughts supplied for something that had no visible form. No flame floated on the trail. Nothing human stood before him.
The presence remained completely silent.
Nathan waited for a voice until the waiting itself became unbearable. None came. Instead, memories rose with unnatural clarity: his father's empty chair, Josh turning away years earlier, Aria's fingers threaded through his, Kylie asleep safely at home, Eva replying because she always replied.
They were not pictures projected into the woods. They were his own memories, but each arrived with the same pressure beneath it—the instinct to close his hands around what remained before anything else could be lost.
Nathan flexed his fingers at his sides.
<<speech "Nathan">> "People aren't things you own." <</speech>>
The silence neither agreed nor resisted.
For one breath, the candle-flame symbol bent as though caught in wind. A second impression followed: the sun reduced to a black circle above these same trees, white fire around its edge, the creek dark at midday.
Nathan understood only the direction of it. Tomorrow. The eclipse. This place.
No words delivered the meaning. He could not tell whether he had been shown a future moment or had assembled one from the event occupying the entire town.
The rose-gold quality passed through the clearing.
There was no touch and no warmth left in his body. Nothing opened inside him. He could not reach outward, influence anyone, or even summon the candle-flame image again. The presence withdrew without a farewell because it had never spoken in the first place.
The creek resumed first. Water struck stone. Insects returned a second later, followed by wind moving high through the canopy.
Nathan was alone.
He started back toward the marked trail. As he walked, familiar names began surfacing without invitation—Aria, Kylie, Eva, Isabella, even Josh. They were whispers only because Nathan lacked a better word. They had no sound, no speaker, and no separate voice. Each name simply arrived carrying a possessive pressure that did not belong beside the affection itself.
Aria, followed by the need to make certain she stayed.
Kylie, followed by the fear that safety required control.
Josh, followed by the old wish to undo every year of distance whether Josh wanted it undone or not.
Nathan stopped beneath the first trail marker and pressed both palms against his face. The thoughts used his own memories and his own emotional language. That made them harder to reject than any audible command would have been.
His phone showed two messages from Eva.
<strong>Still walking?</strong>
<strong>I'm near the east entrance now.</strong>
Nathan typed with cold fingers.
<strong>Heading out. A ride would be good.</strong>
By the time he reached the trailhead, Eva's car was turning into the small parking area. She had not entered the woods, checked his location, or come searching for him. She knew where he had chosen to walk because he had told her, and she had offered to collect him on her way past.
Eva lowered the passenger window. Her dark hair was pulled over one shoulder, and a light-gray cropped shirt showed above faded cutoff shorts. She leaned across the console to push the door open from inside.
<img src="img/Eva/Normal.jpg">
<<speech "Eva">> "That was longer than 'for a while.'" <</speech>>
The ordinary complaint loosened something in Nathan's chest. Eva had been his wholly platonic best friend since high school. She knew his silences, his bad routes, and the difference between wanting company and wanting questions.
Nathan got into the passenger seat. Warm air moved over his hands as Eva turned the vents toward him. <<speech "Nathan">> "I took the wrong branch twice." <</speech>>
<<speech "Eva">> "You always take the wrong branch." <</speech>> She looked at his face more carefully, her teasing fading without becoming alarm. <<speech "Eva">> "You okay?" <</speech>>
Nathan glanced through the windshield at the dark trail. He did not tell her about the stillness, the rose-gold light, the silent presence, or the candle-flame image.
<<speech "Nathan">> "I'm tired. I lost track of time." <</speech>>
Both statements were true. Eva watched him for another second, then accepted the boundary. <<speech "Eva">> "All right. I have water in the door." <</speech>>
He drank while she pulled out of the lot. Eva kept the music low and rested one hand loosely on the wheel, close enough that their sleeves brushed when she changed gear. The contact carried years of uncomplicated friendship.
Her name surfaced inside Nathan with the others.
This time there was still no sentence and no voice—only a sudden urge to make that dependable presence permanent, to remove every future in which Eva might choose a life that carried her elsewhere.
Nathan drew his arm closer to his side.
Eva noticed the movement but did not turn it into a question. <<speech "Eva">> "Your place or mine?" <</speech>>
<<speech "Nathan">> "Mine. Kylie will still be awake." <</speech>>
<<speech "Eva">> "Then text Aria before she thinks the forest ate you." <</speech>>
Nathan sent the message. Eva drove him home and waited at the curb until he unlocked the front door, the same practical habit she had followed for years.
No power had awakened inside him. The Spirit had no body, had spoken no words, and had given Nathan nothing he could use. Its portrait was only the candle-flame symbol his mind used to mark an encounter he could not otherwise represent.
He told Eva none of it.
The silent pressure followed him inside and ensured that eclipse morning began before he slept.
</div>
<hr>
<div style="text-align:center; padding-bottom:35px;">
<p style="color:#888;">Eclipse morning approaches.</p>
|
[[Continue — Eclipse Morning|ProloguePart7]]
|
[[Skip Remaining Prologue — Choose a Vice|PrologueSelection]]
</div><h1 style="text-align:center; color:#ffcc66; letter-spacing:2px;">DAY THREE</h1>
<p style="text-align:center; color:#888;">Morning to first contact</p>
<div class="narrative">
<h2 style="color:#ffcc00;">Jasper</h2>
Jasper opened Thornfield's wooden case shortly after sunrise.
<img src="img/Player/Jasper.jpg">
The three vials rested exactly where he had left them. A folded card beneath the gold vial instructed him to use one drop on his wrist, record how long the scent remained, and keep the amber and clear seals intact.
Jasper broke the gold wax.
Chamomile, worn leather, and rain on warm pavement rose from the stopper. The blend was rich, careful, and entirely ordinary. It did not fill the room with memories. It did not make his voice feel heavier. When he opened the window, the scent thinned beneath the morning air as any perfume would.
Relief came first.
Disappointment followed closely enough to shame him.
Some part of Jasper had expected Thornfield's secrecy to contain an answer to the fear he carried into every relationship. He thought of Melody saving him a chair, Carolina trusting him with her photographs, Casey returning to Havenwood with food, and Chanel standing beside him in the administration lobby. He wanted proof that those people would keep choosing him.
A bottle could not give him that proof without ruining it.
Jasper touched one measured drop to his wrist, started the timer on his phone, and closed the vial. The scent stayed close to his skin. Nothing else changed.
He locked the case before leaving his bedroom.
Director Kane was waiting beyond the Havenwood gate.
<img src="img/Player/Maxwell.jpg">
Kane looked out of place beneath the maples in a dark coat and polished shoes. He was the university's director, Isabella's guardian, and a man Jasper knew mainly through formal events and the feeling that Kane noticed more than he admitted.
<<speech "Maxwell">> "Professor Thornfield gave you something." <</speech>> Kane's attention settled on the canvas bag against Jasper's hip.
Jasper stopped inside the gate. <<speech "Jasper">> "Did he tell you?" <</speech>>
<<speech "Maxwell">> "Thornfield rarely tells anyone anything directly." <</speech>> Kane stepped closer and breathed once, catching the faint chamomile on Jasper's wrist. <<speech "Maxwell">> "Keep the case with you today." <</speech>>
<<speech "Jasper">> "Why?" <</speech>>
Kane looked through the branches toward the clear morning sun. <<speech "Maxwell">> "Because the formula is not finished becoming what it is." <</speech>>
Jasper's hand tightened around the bag strap. <<speech "Jasper">> "It's perfume." <</speech>>
<<speech "Maxwell">> "This morning, yes." <</speech>>
The answer irritated him. <<speech "Jasper">> "If you know something, say it." <</speech>>
Kane's gaze returned to him, calm and unreadable. <<speech "Maxwell">> "At totality, decide what trust means before you ask anyone else to give it to you." <</speech>>
He left Jasper at the gate with no explanation for how he knew about the case.
The gold scent continued fading from Jasper's wrist. By the time Kane's car disappeared, only the leather remained.
No power had awakened.
<hr>
<h2 style="color:#00ffcc;">Nathan</h2>
Nathan woke with familiar names already moving through his thoughts.
<img src="img/Player/Nathan.jpg">
*Kylie is downstairs.*
*Aria will call.*
*Eva drove you home.*
They were true statements formed in his own mental cadence. Nathan called them whispers because they arrived softly and without invitation, not because he heard a speaker. There was no sound or foreign voice behind them.
He showered, dressed, and left the house before Kylie could ask why he looked exhausted. The thoughts followed him into morning traffic, attaching a possessive pressure to every familiar name that crossed his mind.
Nathan parked near the literature building and sat behind the wheel with both hands resting on it. He could not stop the pressure. He also could not make it do anything. No warmth moved through him. No person looked at him differently.
A knock sounded against the passenger window.
Kane stood outside.
<img src="img/Player/Maxwell.jpg">
Nathan unlocked the door but did not invite him inside. Kane opened it anyway and leaned one hand against the roof.
<<speech "Maxwell">> "You went into the woods last night." <</speech>>
Nathan's exhaustion sharpened into anger. <<speech "Nathan">> "How do you know that?" <</speech>>
<<speech "Maxwell">> "You look like your father did when he was trying to decide whether an impossible thing had happened." <</speech>>
Kane had been one of his father's oldest friends. He used that history sparingly, which made the reference feel deliberate.
<<speech "Nathan">> "Something was there." <</speech>>
<<speech "Maxwell">> "Did it speak?" <</speech>>
<<speech "Nathan">> "No." <</speech>> The certainty returned the complete silence of the clearing to him. <<speech "Nathan">> "It didn't say anything." <</speech>>
<<speech "Maxwell">> "And now?" <</speech>>
<<speech "Nathan">> "Now my thoughts don't stay where I put them." <</speech>>
Kane studied him through the open door. He did not ask Nathan to describe the presence or suggest that it had been a dream.
/% V3 BOOKMARK — VANNA
Expand before Kane leaves as a future Nathan tutoring/academic bridge involving Caldwell's niece.
Vanna's extended scene should remain grounded in ordinary university pressure while connecting Nathan's academic life to Caldwell. Do not let her see or react to the whispers as supernatural.
Add Vanna's Normal portrait every time she appears once V3 assets exist.
%/
<<speech "Maxwell">> "An impulse can resemble love and still want something from you." <</speech>> His fingers tapped the car roof once. <<speech "Maxwell">> "Do not confuse recognition with obedience." <</speech>>
<<speech "Nathan">> "You know what happened." <</speech>>
<<speech "Maxwell">> "I know where you need to be when the sun disappears." <</speech>>
<<speech "Nathan">> "The forest." <</speech>>
Kane closed the passenger door. <<speech "Maxwell">> "The choice remains yours until you make it." <</speech>>
He walked toward the administration building.
Nathan watched him go, more certain than before that Kane was involved and no closer to understanding how.
The thought of Kane's history with his father surfaced immediately. A possessive urge followed it: another surviving connection that loss might take if Nathan did not hold tightly enough.
Nathan started the car and drove away from campus before the urge could settle into something that felt reasonable.
<hr>
<h2 style="color:#ff3333;">Josh</h2>
Jade, Kali, and Gina were already in Josh's kitchen when he came downstairs.
<img src="img/Player/Josh.jpg">
They all knew one another through Elsa. Jade had spent enough evenings at the house to know which cabinet held the clean mugs. Kali had argued with Josh across the table and laughed with him on the rare nights he allowed it. Gina treated the front door as open whenever Elsa expected her.
They knew Josh too—not as a stranger or a story Elsa told, but as the difficult man who lived upstairs, made strong coffee, sometimes joined them, and sometimes emptied a room with his temper.
Jade stood at the counter in a fitted red crop top, black frayed shorts, and red platform heels. Her long black hair fell straight down her back as she divided pastries onto four plates with unnecessary precision.
<img src="img/Jade/Normal.jpg">
Kali leaned beside her in a neon lime crop top and matching skirt, one clear heel hooked behind the other. Gina sat on the counter in her floral off-shoulder top and black skirt, swinging one leg beneath the cabinet.
<img src="img/Kali/Normal.jpg">
<img src="img/Gina/Normal.jpg">
<<speech "Gina">> "Morning." <</speech>> She pointed at the coffee pot with one bare shoulder. <<speech "Gina">> "We left enough for you because Jade said drinking all of it would be hostile." <</speech>>
<<speech "Jade">> "I said inconsiderate." <</speech>> She slid the fourth plate toward Josh. <<speech "Jade">> "Sit before Gina decides your pastry is abandoned property." <</speech>>
Josh sat.
That alone would have counted as improvement several weeks earlier. He had attended Alina's appointment, accepted Caldwell's warning without shouting, thanked Lana, and texted Elsa rather than letting her worry. He had been trying, even when nobody seemed to notice the effort until it failed.
Gina turned on the small speaker. Music moved softly through the room.
/% V3 BOOKMARK — SCARLIT
Expand after Gina starts the music.
Scarlit's future extended scene should show her theatrical social energy and established loose friendship with Josh, Jade, Kali, and Gina. The scene must deepen Josh's social context without becoming generic banter or eclipse planning.
Add Scarlit's Normal portrait every time she appears once V3 assets exist.
%/
Kali watched Josh over the rim of her mug. <<speech "Kali">> "You slept even less than yesterday." <</speech>>
<<speech "Josh">> "I'm fine." <</speech>>
Her eyes stayed on him for another second, then moved away. <<speech "Kali">> "Okay." <</speech>>
She respected the boundary. Josh still felt examined.
Jade asked whether the administration had fixed his make-up exam. Josh told her Thursday. <<speech "Jade">> "Good." <</speech>> She pushed the sugar toward him and returned to her own coffee. No lecture followed.
Again, reasonable. Again, irritating.
Gina's phone lit with the group thread. She laughed at a photograph and turned the screen toward Kali. Nathan stood in the background beside Jasper and Marie, half-hidden behind a box of volunteer lanyards.
<<speech "Gina">> "Marie finally sent the picture. Jasper looks like he was kidnapped into helping." <</speech>>
Kali smiled. Jade enlarged the photograph with two fingers. <<speech "Jade">> "Nathan looks happy." <</speech>>
The sentence entered Josh like a splinter.
Nobody had compared them. Nobody had said Nathan deserved the room more. The women were looking at an ordinary photograph.
Josh heard everything beneath it anyway.
Nathan had new friends. Nathan had Marie laughing again. Nathan could appear in a picture without making everyone tense.
Josh set his mug down harder than intended. Coffee climbed the inner rim and spilled across one knuckle.
The music continued. Gina lowered the phone.
<<speech "Kali">> "Josh—" <</speech>>
<<speech "Josh">> "Don't." <</speech>>
Kali stopped immediately.
Her obedience should have cooled him. Instead, the care in it felt like proof that she had been managing him from the beginning.
Jade reached for a napkin. <<speech "Jade">> "You spilled—" <</speech>>
<<speech "Josh">> "I can see it." <</speech>> He wiped his hand before she touched him.
Silence spread outward from his chair. Gina turned the music lower. Kali looked at the table. Jade folded the unused napkin once and placed it beside his plate.
They were giving him space.
Josh experienced it as the room retreating.
<<speech "Josh">> "Can you stop acting like I'm about to explode?" <</speech>>
Jade's expression stayed calm. <<speech "Jade">> "Nobody said that." <</speech>>
<<speech "Josh">> "You don't have to." <</speech>>
Gina slid off the counter. <<speech "Gina">> "We were having breakfast." <</speech>> Her voice was softer than usual, stripped of the energy she used to keep people connected. <<speech "Gina">> "That's all." <</speech>>
Josh knew she was telling the truth. Selene's words returned anyway: *Keep letting every room decide what you are before you speak.*
He stood so quickly the chair legs scraped the floor.
<<speech "Kali">> "Do you want us to leave?" <</speech>>
There was no challenge in it. Kali was offering him control over his own kitchen.
<<speech "Josh">> "I want everyone to stop asking what I want like it's another symptom." <</speech>>
The anger had outgrown the conversation. Josh could feel that and still could not force it back down.
He walked out through the rear door before he said something cruel enough to make the scene match what he imagined.
Kane stood beyond the porch rail.
<img src="img/Player/Maxwell.jpg">
Josh stopped on the steps. <<speech "Josh">> "Do you people take turns?" <</speech>>
<<speech "Maxwell">> "No." <</speech>> Kane looked through the kitchen window, where Jade, Kali, and Gina remained around the table. <<speech "Maxwell">> "They came because they know you. You became angry because they know Nathan too." <</speech>>
<<speech "Josh">> "Mind your own business." <</speech>>
Kane's attention returned to him. <<speech "Maxwell">> "You were doing better." <</speech>>
The words hit harder than criticism.
Josh came down the final step. <<speech "Josh">> "Everyone keeps score." <</speech>>
<<speech "Maxwell">> "You do." <</speech>> Kane did not move when Josh entered his space. <<speech "Maxwell">> "Tomorrow night, your anger may become easier to share. Decide whether that makes it more honest." <</speech>>
<<speech "Josh">> "I don't know what you're talking about." <</speech>>
<<speech "Maxwell">> "You will." <</speech>>
Kane walked away along the side path.
Josh stayed outside until the anger cooled enough for shame to reach it. When he returned, the three women were still there. Gina had turned the music back up slightly. Jade had cleaned the coffee. Kali looked at him but did not ask another question.
Josh sat without apologizing.
He also did not tell them to leave.
<hr>
<h2 style="color:#bb66ff;">Caldwell</h2>
By late morning, Caldwell had run the isolated calibration six times.
<img src="img/Player/Caldwell.jpg">
The machine remained ordinary. The spiral obeyed its controls, the frequency stayed within programmed limits, and the synthetic model produced nothing beyond its weak baseline.
Kane's instruction not to test a person before totality irritated Caldwell more with each failed run. He followed it because the director had known about the hidden system without being told.
At 11:42, the observatory feed showed the first edge of the moon approaching the sun.
Caldwell shut down the calibration and began moving the compact projector into its shielded case. Whatever Kane expected, Caldwell intended to meet it with every variable under control.
<hr>
<h2 style="color:#00ffcc;">Nathan</h2>
The pressure changed when the moon touched the sun.
<img src="img/Player/Nathan.jpg">
Until then, it had moved through names: Aria, Kylie, Eva, and other people Nathan loved in different, ordinary ways.
At first contact, the names collapsed into a single direction.
The forest.
No voice said *return*. The silent presence issued no command. The destination simply crowded every other thought while Nathan stood beside his car at the edge of campus.
Through certified glasses, the sun still looked almost whole, a black curve barely visible along one side.
Nathan could have driven home. Instead, he put the glasses in his jacket and turned toward the road leading back to the creek. He needed to understand what had happened there, and Kane's unexplained certainty had made avoidance feel no safer than returning.
He drove toward the forest.
<hr>
<h2 style="color:#ffcc00;">Jasper</h2>
At Havenwood, Jasper placed Thornfield's wooden case on his bed.
<img src="img/Player/Jasper.jpg">
The gold formula still smelled like ordinary chamomile, leather, and rain. No impossible weight had entered his voice. No one in the house behaved differently around him.
When the light outside began to thin, the brass key warmed inside his pocket.
Jasper took it out and held it in his palm.
He did not open the case again.
<hr>
<h2 style="color:#ff3333;">Josh</h2>
Josh watched the beginning of the eclipse from the back porch through one of Lily's spare viewing filters.
<img src="img/Player/Josh.jpg">
The sun lost its first narrow edge. Nothing changed inside him. No heat, hunger, or power answered the sky.
His phone showed no message from Selene.
He remembered the bookstore door and the pendant closing inside her hand.
When the first sliver of sunlight disappeared, Josh went inside for his keys.
</div>
<hr>
<div style="text-align:center; padding-bottom:35px;">
<p style="color:#888;">The partial phase has begun.</p>
|
[[Continue — The Deepening Shadow|PrologueEclipse]]
|
[[Skip Remaining Prologue — Choose a Vice|PrologueSelection]]
</div><h1>Will Loss: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["caldwell"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Keisha/Normal.jpg">
The morning had been one of those mornings. Scarlit had gotten into a shouting match in the dining hall — a comment, a chair, a crowd — and by the time Keisha got there the girl was mid-performance, all theatrical outrage and wounded dignity, denying everything, making it worse, louder, until Keisha sat her down and the fire went out of her and she'd had nothing useful to say at all. And then the discipline report had landed, and there was Rae's name again — flagged for cutting class, the fourth time — a name Keisha had read so often she could sketch it. Bright girl. Circling. Never quite caught.
She didn't send for anyone. She went to the source instead, the way she did when she wanted a straight answer: you corner the man who's been logging the problem from the inside. Marcus Caldwell. Head of campus standards. The man who ran the screening initiative she'd signed into being — the memos with her name at the bottom that put every security guard and administrator through the chair. She found him in his office among the old books and the dim light, the projector dark against the far wall, and she sat across from his desk and ran the meeting.
<<speech "Keisha">> "Scarlit," <</speech>> she said. <<speech "Keisha">> "Dining hall, this morning. Public, loud, worse the moment she had an audience. I got nothing out of her — denial, drama, repeat. Your read?" <</speech>>
He looked at her with the patience of a man who graded people for a living.
<<speech "Caldwell">> "Scarlit's a performance. The louder the room, the more she plays to it. Starve the audience and she'll fold." <</speech>>
<<speech "Keisha">> "And Rae." <</speech>> She opened the file, set it between them. <<speech "Keisha">> "Fourth flag. You've logged every one of her visits from the inside. You know her better than anyone on this campus. What's going on with her, Marcus?" <</speech>>
He leaned back, and something in his voice shifted a fraction — she'd learn to read that shift later, too late.
<<speech "Caldwell">> "Rae wants the line drawn. She wants someone to actually hold her to it. She'll keep circling until someone catches her." <</speech>> He let it sit a moment. <<speech "Caldwell">> "The screening had her in the chair. It read her the way it reads everyone — surface calm, deeper want." <</speech>>
She almost closed the file. That was the moment — she would understand it later, in the small hours — she almost closed the file and walked out with everything intact. And then he said, mild as anything:
<<speech "Caldwell">> "You've never sat through one yourself, have you, Vice Director." <</speech>>
<<speech "Keisha">> "I don't run the chairs, Marcus. I run the memos." <</speech>>
<<speech "Caldwell">> "You sign every one of them. Mandatory attendance — your words. Security, admin, every one of them through the chair. But never the Vice Director." <</speech>> He gestured to the empty chair before the projector, and his voice stayed mild, almost collegial. <<speech "Caldwell">> "You want to understand why the ones like Rae resist? Sit where they sit. Twenty minutes of your own program, and you'll understand her better than any file." <</speech>>
She'd built the program on exactly that principle — no one could say the Directorate asked anything of its people it wouldn't ask of itself. She'd said it at the board meeting. She said it to herself now, and it closed the argument.
<<speech "Keisha">> "Fine. Show me what they see." <</speech>>
She sat. That was the moment — she would understand it later, in the small hours — she sat because she believed in her own program, because she'd never ask her staff to do anything she wouldn't do herself, and because the conversation was still, in her head, hers to run.
The spiral turned on the screen, blue and silver. The hum sank into her bones. He talked for a long time — forty minutes, an hour, she lost count — about her judgment and her discretion and her duty to the institution. About how much of the institution ran through her. About how heavy that was, how heavy it had always been, and how good it would feel to put it down, just for an hour, just for this hour. She heard herself agreeing. She heard herself breathe. She felt the hour move through her like water through a lock, and when he finally leaned forward, his voice was soft.
<<speech "Caldwell">> "The trigger is a word you know better than any other. A word you approve every single day. When you hear it, you'll feel this ease, and you'll do what it asks. The word is: approved." <</speech>>
She nodded. She didn't know why she nodded. Somewhere inside her, the word settled like a coin into a slot.
The mask dropped somewhere around the hour mark. One moment he was the patient doctor walking her through her own protocol; the next his voice was a knife, and he was standing over her chair, and his hands were at the collar of her black top, pulling it down around her waist.
<video src="img/Keisha/Caldwell/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "The Vice Director," <</speech>> he said, and the contempt in his voice was a physical thing, warm and delighted. <<speech "Caldwell">> "The young woman in control, sitting in her own chair. You thought you were above this, Miss Keisha. You outrank me in every room but this one." <</speech>>
She should have stood. She should have screamed. Her body, trained in the last hour, leaned into his hands instead, and she looked down at herself — breasts bare, gold earrings swinging, the mandala along her ribs — with the detached horror of a woman watching herself in a dream. He worked her breasts slowly, deliberately, and she heard herself moan.
<<speech "Caldwell">> "That's it," <</speech>> he murmured. <<speech "Caldwell">> "That's the approval signing itself." <</speech>>
He lifted her onto the desk — her black dress bunched around her hips, one leg high in the gold sandal — and knelt between her thighs and ate her with the same clinical thoroughness he graded papers, and she came with her hand over her mouth and her heel digging into his shoulder, and she hated him, and her body sang.
<video src="img/Keisha/Caldwell/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
When it was done he stood and straightened his tie, and his voice went smooth again, the mask back in place.
<<speech "Caldwell">> "You'll return for the second phase of the review. You'll tell anyone who asks that it's a confidential standards consultation." <</speech>> He looked at her, and something in his face was almost kind, which was the worst thing of all. <<speech "Caldwell">> "And you'll remember nothing else. Go on, then. You're needed elsewhere." <</speech>>
She walked out of his office on shaking legs, out of the building, into the cold evening — and she couldn't remember his face, and she couldn't stop feeling his hands, and at the edges of her mind there was a word waiting for her, a word she approved every single day. She couldn't catch it. She was already on her way home, and the word followed her like a shadow.
<<elseif _s is 2>>
<img src="img/Keisha/Corr1.jpg">
She didn't go back. That was the lie she told herself, and she almost believed it — she went home, she slept badly, she woke angry, and she told herself she'd handled worse men than Marcus Caldwell with a memo and a meeting. She was the Vice Director. She had a board, she had a spine, she had a very long history of winning rooms she walked into. She was home that evening in the white lace bra and denim shorts, hair loose, rehearsing the speech that would end him — the complaint to the board, the standards review, the slow, public unmaking of Dr. Marcus Caldwell — when the word surfaced in her mind like a stone rising through water.
*Approved.*
Her body went warm. Her mouth opened. She heard herself say it, soft and obedient, to the empty room:
<<speech "Keisha">> "Approved." <</speech>>
And the pull took her — not her feet, not her hands, but something deeper, something that had been wound around her spine since the hour in his office. She dressed carefully. She knew, with a distant, furious clarity, that she was dressing to go to him, and that her legs would not let her do anything else.
She went to his office in the black suit she saved for board meetings, the one that made deans flinch — armor, dignity, a last flag. Every step of the walk, her fury and the pull fought over her like two dogs on the same leash: one half of her rehearsing the complaint she'd file, the language she'd use, the exact way she'd watch him sweat; the other half simply, terribly grateful she had somewhere to be that ended with him. She stood in his doorway with her chin up and her voice level.
<<speech "Keisha">> "This ends now, Marcus. I'm going to the board. I'm going to Kane. I'm going to bury you — " <</speech>>
He looked up from his desk, and the projector was already humming behind him, and he said, pleasantly:
<<speech "Caldwell">> "Approved." <</speech>>
Her knees hit the floor. She watched them do it — she watched her own body fold, the flag coming down — and the last hour of the day belonged to him: the gold earrings swinging, the heavy dark eye makeup she'd put on for war, the slow deliberate way she took him into her mouth on the floor of his office while he talked over her head to no one, grading her like she was nothing, like she was a thing he'd found under the stairs.
<video src="img/Keisha/Caldwell/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Report me?" <</speech>> He laughed, one short, ugly sound. <<speech "Caldwell">> "Look at yourself, you stupid thing. You can't even remember your own name when I'm done with you. The Vice Director of this university, on the floor of a professor's office, drooling on my cock — you think the board wants to hear that story? You think Kane does?" <</speech>>
He pulled out and came across her face — thick, hot, in her eyes, her lips, her chin — and she knelt there with her mouth open, tongue out, accepting it, and when she looked up at him through the mess, she was smiling. Small. Wet. Wrecked. She couldn't stop it.
<video src="img/Keisha/Caldwell/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Say it." <</speech>>
<<speech "Keisha">> "I'm a dumb slut who became Vice Director because of my mouth skills," <</speech>> she heard herself say, "and I come when Dr. Caldwell calls."
<<speech "Caldwell">> "Good girl. Now get dressed and go back to your board meeting, you worthless thing. You're on the agenda." <</speech>>
She walked out with his come still drying on her face, cleaned herself in the faculty bathroom, and sat through the board meeting with a smile that would have fooled anyone — and all of it, all of it, she was already looking forward to the next session.
<<elseif _s is 3>>
<img src="img/Keisha/Corr3.jpg">
She'd stopped locking her door. That was the thing she couldn't explain, in the mornings, in the car, in the moments when the fog lifted far enough to see — she couldn't remember deciding to stop locking her door, any more than she could remember deciding to dress for him in the mornings, or to find her feet carrying her toward his building without a word from anyone. The fog was everywhere now, soft at the edges, and the word was always waiting at the bottom of it, and when the fog cleared enough to think, she was terrified.
She came home that evening and he was in her living room. He was sitting on her couch, in her apartment, like he'd always been there — and the word was humming at the back of her skull, and the coat came off her shoulders like water, and she was standing in front of him in nothing but the black platform heels, the garter and stockings she'd put on that morning without remembering why.
<<speech "Keisha">> "I'm going to Kane," <</speech>> she said. She'd been saying it every time the fog cleared — in the car, in the mirror, a mantra, the last flag. <<speech "Keisha">> "I'm going to the board. I'm going to end this. Marcus — you've made me — you've turned me into — " <</speech>>
He looked up from her couch, patient as ever.
<<speech "Caldwell">> "Say it again," <</speech>> he said, gently.
She opened her mouth. What came out was:
<<speech "Keisha">> "Approved." <</speech>>
The fog closed over her head, warm and soft, and the last flag came down, and she crossed the room and pressed her hands against the wall of her own hallway and let him take her from behind — the floral mandala stretched along her ribs, the garter catching the light, her hair swinging — and she was still, somewhere very far away, screaming. It didn't matter. Nothing she did mattered anymore. She heard herself moan his name, heard her own voice go sweet and empty and obedient, and she hated it, and she wanted it, and she couldn't tell the difference anymore.
<video src="img/Keisha/Caldwell/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled her onto the leather couch, on her back, and stood over her, one hand fisted in her hair, and came across her face — thick ropes, her eyes closed, her cheeks, her lips, her chin — and she lay there, still, accepting, taking every drop until he was done, and when he finally let go of her hair and looked down at her, his contempt was almost tender.
<video src="img/Keisha/Caldwell/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Caldwell">> "Say what you are, you stupid thing." <</speech>>
And the fog let her keep this one thing, let the words rise up through it clear and true and her own:
<<speech "Keisha">> "I'm yours, Master." <</speech>> Her voice was wrecked and steady at once. <<speech "Keisha">> "I'm the Vice Director, and the campus runs through me — to you. Every approval. Every access. Every door. It all runs through me, to you." <</speech>>
He smiled — a slow, private smile, the smile of a man who'd won a very long game.
<<speech "Caldwell">> "There she is," <</speech>> he murmured. <<speech "Caldwell">> "The woman who outranks me in every room but this one. And now she's the reason every room on this campus answers to me. You're going to be very useful, Miss Keisha. The most useful thing I own." <</speech>>
She lay there in the cooling dark, his come drying on her face, her arm stretched out along the couch, and the fog was warm and soft and everywhere, and the last thought that was truly hers rose up through it and sank again: I outrank him. I outrank him in every room. It didn't matter anymore. The campus ran through her like a river through a lock, and every door opened on his word now, and the Vice Director — the most powerful woman on the campus — knelt in her own living room with his come on her face and called him Master, and meant it, and the institution never saw a thing.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1 style="text-align:center; color:#ffcc66; letter-spacing:2px;">THE ECLIPSE</h1>
<p style="text-align:center; color:#888;">Four locations. One moment.</p>
<div class="narrative">
<h2 style="color:#00ffcc;">Nathan — The Forest</h2>
The silent pressure drew Nathan back to the creek while the sun was still a bright crescent.
<img src="img/Player/Nathan.jpg">
He wore certified viewing glasses until the trees blocked most of the sky. Light beneath the canopy had turned thin and metallic. Birds had gone quiet. Every gap between leaves cast the same curved shadow onto the trail.
Aria. Kylie. Eva.
The names did not sound in another voice. They rose in Nathan's own thoughts, each followed by the temptation to turn affection into a door he could close and lock.
Nathan reached the maples where the silent presence had appeared the night before. Rose-gold color gathered at the edge of perception without becoming a body or occupying a place.
The symbolic image returned behind his eyes.
<img src="img/Player/Spirit.jpg">
A candle flame against darkness. No candle stood beside the creek, and no flame floated between the trees. The portrait was only a mental symbol for something Nathan could not see. There was no face, figure, or woman hidden inside it.
The Spirit said nothing.
The pressure tightened without language.
Aria choosing another future. Kylie building a life that no longer needed him. Eva moving somewhere his daily presence could not follow. His father's death repeated through every bond he still possessed.
No one described those possibilities. Nathan's own memories supplied them, sharpened until fear felt like proof.
He closed his eyes. <<speech "Nathan">> "Love isn't love if they can't choose it." <</speech>>
The candle-flame symbol leaned as though wind touched it, then steadied. That movement occurred only in the image behind his eyes. The clearing itself remained empty.
Rose-gold color crossed the creek. It offered no hand, verdict, or promise. The air simply opened around Nathan like a held breath while the final sunlight narrowed toward nothing.
<hr>
<h2 style="color:#ffcc00;">Jasper — Havenwood</h2>
Jasper sat alone in his bedroom with Thornfield's case open on the bed.
<img src="img/Player/Jasper.jpg">
The gold vial rested beside the silver atomizer. Chamomile and leather remained ordinary, but the brass key had grown warmer as the sky darkened.
Outside the room, Havenwood moved through a strange midday twilight. A door closed downstairs. Somebody crossed the hall and continued past. Jasper had asked for ten minutes alone without explaining why.
Kane's words stayed with him: *Decide what trust means before you ask anyone else to give it to you.*
Jasper thought of the temptation inside Thornfield's work. If people felt safer near him, they might stay. If they trusted him more, they might stop looking for reasons to leave.
That was precisely why he feared opening the atomizer.
He poured the measured gold formula into it anyway.
Nothing changed. The scent stayed chemical and familiar. Jasper held the silver body in one hand while the crescent shadows outside narrowed toward nothing.
<<speech "Jasper">> "Trust has to mean they can say no." <</speech>>
He spoke to the empty room because he needed to hear the rule before the power existed.
The atomizer waited in his palm.
<hr>
<h2 style="color:#bb66ff;">Caldwell — Observatory Control</h2>
Caldwell locked the compact projector into the isolated control port beneath the observatory.
<img src="img/Player/Caldwell.jpg">
The public viewing grounds were several floors above him. Their noise reached the room only as vibration through the ceiling. His system had no camera connection, no microphone input, and no living subject. One monitor displayed the spiral; the other held the synthetic attention model at baseline.
Kane's warning had been specific: wait for totality.
Caldwell disliked obeying unexplained instructions. He disliked uncertainty more.
The shrinking sunlight appeared on a small protected monitor beside the controls. Ninety seconds remained. The projector produced the same weak response it had produced all morning.
Caldwell placed one hand on the casing.
<<speech "Caldwell">> "You will answer me." <</speech>>
The machine did nothing.
For now.
<hr>
<h2 style="color:#ff3333;">Josh — The Bookstore</h2>
Selene had left the bookstore door open.
<img src="img/Player/Josh.jpg">
Josh entered while the street outside dimmed toward an unnatural dusk. The shop was empty except for Selene and the narrow amber light around the counter.
She wore the same black dress. The crescent pendant hung between her breasts, dark liquid inside it catching each lost piece of daylight.
<img src="img/Player/Selene.jpg">
<<speech "Selene">> "You said you weren't coming back." <</speech>> She stood and approached him with the slow confidence of someone who had never doubted the result.
<<speech "Josh">> "I wanted an answer." <</speech>>
<<speech "Selene">> "No." <</speech>> Her fingers slid beneath the chain and lifted the pendant from her skin. <<speech "Selene">> "You wanted a choice nobody else could make for you." <</speech>>
The morning with Jade, Kali, and Gina remained raw beneath Josh's anger. They had been kind. He had still found a way to hear judgment. Kane had told him he was keeping score, and Josh hated the accuracy enough to remember every word.
Selene stepped close and laid the pendant against his chest. It remained cold through his shirt.
<<speech "Selene">> "When the light vanishes, I can make your anger impossible to ignore." <</speech>> Her mouth hovered near his ear. <<speech "Selene">> "Not commands. Not love. Want. Need. A body that tells the truth even while the mind lies." <</speech>>
Josh caught the chain before she fastened it.
<<speech "Josh">> "And the price?" <</speech>>
<<speech "Selene">> "You live with what you choose to do once hurting people becomes easy." <</speech>>
For the first time, her smile contained no teasing.
The remaining sunlight narrowed outside the windows.
Josh closed his hand around the pendant.
<hr>
<h2 style="text-align:center; color:#ffffff; letter-spacing:3px;">TOTALITY</h2>
At the exact same second, the final edge of sunlight disappeared over Eldridge Hollow.
The corona opened around a black sun. Stars emerged in daytime. Temperature fell across the campus, Havenwood, the forest, the observatory, and Maple Street.
Four prepared positions found four signatures at once.
<hr>
<h2 style="color:#00ffcc;">Nathan</h2>
Rose-gold light passed through Nathan without touching him.
It entered every bond he carried: family, friendship, romance, grief. Aria's tenderness, Kylie's trust, Eva's loyalty, Isabella's history, even the damaged absence where Josh had once stood—all of it became visible inside him as warm lines extending outward.
The warmth did not create love. It found love that already existed and showed Nathan how easily it could be intensified, redirected, or made unbearable.
His first instinct was to gather every line against his chest.
Nathan forced his hands open.
<<speech "Nathan">> "They still choose." <</speech>>
No answer came from the Spirit.
The candle-flame symbol flared soundlessly behind his eyes and dissolved into the warm lines. The pressure that had followed him since the previous night settled into a living current behind his heart, waiting for Nathan to decide how it would move.
He understood its name without hearing anyone speak it.
Love.
At the same instant, Nathan sensed three other awakenings beyond the forest—cold control, enclosing safety, and violent hunger—then lost them beneath the corona's light.
<hr>
<h2 style="color:#ffcc00;">Jasper</h2>
The atomizer warmed in Jasper's hand.
Chamomile left the metal without him pressing it. Leather and rain unfolded through the room with impossible depth. The scent carried every quality Jasper wanted people to feel near him: safety, patience, recognition, and the promise that a place beside him would remain open.
It also carried the ability to make those feelings heavier than doubt.
Jasper heard his own breathing slow. The empty bedroom seemed to lean closer when he spoke.
<<speech "Jasper">> "No one stays because they have to." <</speech>>
The scent answered his intention, softening instead of tightening. Trust settled into his voice and skin, no longer confined to Thornfield's formula.
He felt three distant changes beyond Havenwood at the same instant—warmth, cold pressure, and a burst of rage—then the awareness folded inward.
Jasper closed his fingers around the atomizer.
Trust was his now. So was the responsibility for every choice he might make with it.
<hr>
<h2 style="color:#bb66ff;">Caldwell</h2>
The synthetic model lowered its head.
Caldwell had not issued a command.
The spiral stopped while its software timeline continued. The frequency module crossed beyond its programmed range without distortion, producing a tone Caldwell felt in his teeth and spine rather than heard.
Cold resonance climbed through his palm.
He thought *slower*, and the spiral obeyed.
He thought *yield*, and the compliance index rose past its ceiling.
Nothing living sat before the projector. No person had surrendered. The impossibility belonged entirely to the system and the intent now moving through it.
<<speech "Caldwell">> "Will." <</speech>>
The name arrived with perfect certainty.
For one brief instant, three other signatures registered beyond the control room: warmth, enveloping trust, and physical hunger. Caldwell saw four lines spike together on a monitor that had no source for any of them.
Then the display cleared, leaving only his synthetic model waiting for the next thought.
Caldwell smiled into the projector light.
<hr>
<h2 style="color:#ff3333;">Josh</h2>
Selene fastened the chain as totality reached the bookstore.
The pendant's dark center flashed red.
Heat entered Josh through his chest and spread with his pulse. It sharpened every muscle, tightened his breathing, and gathered behind his eyes until sustained attention felt like a physical grip he could close around somebody else's body.
No one else stood in the shop. Selene was not affected. The power turned inward for its first instant, teaching Josh what it could make another person endure: racing pulse, heat, sensitivity, contraction, need, and thought drowned beneath the demand for relief.
Anger fed it immediately.
Josh remembered Jade turning down the music, Kali stopping when he said don't, Gina insisting they had only been eating breakfast. They had done nothing cruel. His anger had still wanted them to feel what he felt.
Now it could make that desire physical.
Selene held his gaze without flinching. <<speech "Selene">> "Lust is yours." <</speech>>
Josh felt three distant powers ignite at the same instant—warm possession, suffocating safety, and cold control. The pendant pulsed four times and went still.
He released the chain.
<<speech "Josh">> "You knew this would happen." <</speech>>
<<speech "Selene">> "I knew what you might choose." <</speech>>
Outside, the corona burned over a city that had no idea four men had changed beneath it.
<hr>
<h2 style="text-align:center; color:#ffcc66;">AFTERLIGHT</h2>
The moon continued across the sun. A bead of white light broke along the black edge, and daylight began returning.
Nathan stood alone in the forest with Love warm behind his heart.
Jasper sealed Thornfield's case while Trust remained on his skin.
Caldwell shut down the public-facing screens and kept Will alive inside the isolated system.
Josh left the bookstore wearing Selene's crescent pendant beneath his shirt, Lust moving with every angry beat of his pulse.
None of them knew the others' names in the pattern they had briefly felt.
Kane did.
The four visits had given him proximity. Totality gave him confirmation. Somewhere beyond their separate locations, four registry positions locked simultaneously around four awakened signatures.
No explanation reached the men.
Only the certainty that they were no longer alone in what had happened.
</div>
<hr>
<div style="text-align:center; padding-bottom:35px;">
<p style="color:#888;">Four Vices have awakened. Choose which one to follow.</p>
|
[[Continue — Choose a Vice|PrologueSelection]]
</div><h1>Lust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["josh"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Keisha/Normal.jpg">
The decision came down that morning, and it came down through her. The board had reviewed the file — the vandalism, the party, the string of warnings — and they'd voted to expel him pending a hearing. Keisha read it twice and sat with it for a long moment, the way she sat with every hard thing, and then she picked up her keys. She didn't delegate these. She never had.
She'd tried with Josh. That was the part that stung — not the decision, not the walk across the empty quad, but the trying. She'd pulled his file after the second incident and seen the whole shape of him: bright kid, mean streak, a mouth that got him in trouble faster than his fists — and she'd decided he was worth saving. She'd arranged the counseling with Alina, and he'd skipped it twice. She'd traded his suspension for community service, and he'd done it like a joke, charming the groundskeeper, leaving early, daring her to catch him. She'd given him the final warning and meant it. And then the party bust had happened, and the vandalism, and she'd stopped. She'd looked at his file one last time and remembered the afternoon Scarlit had marched into her office — all theatrical loyalty, hazel eyes blazing, swearing he wasn't as bad as the paperwork said, swearing she knew him — and Keisha had almost believed her. Scarlit didn't come to his defense anymore. Neither did anyone else. Neither did she.
She found him on the bleachers by the track, alone in the low afternoon light, one leg drawn up, watching her come. He didn't look surprised. She wasn't sure he'd ever looked surprised.
<<speech "Keisha">> "The board voted this morning. Expulsion, pending a hearing. You can say your piece there — I'll see that someone actually reads it." <</speech>> She stopped at the bottom of the bleachers, looking up at him, the folder in her hand like a sentence she'd already read. <<speech "Keisha">> "I came to tell you myself. I thought you'd want that." <</speech>>
He looked at her for a long moment, and then he laughed — short, flat, no humor in it.
<<speech "Josh">> "Madam Vice Director, my own personal delivery service." <</speech>> He said the title like a dirty word, rolling it around in his mouth. <<speech "Josh">> "You know what I love about you, Keisha? You always do the right thing. Right to the end. Right to the moment you gave up on me." <</speech>>
<<speech "Keisha">> "I tried with you, Josh." <</speech>> The words came out before she could stop them, and they cost her something she hadn't meant to spend. <<speech "Keisha">> "I ran out of ways." <</speech>>
He stood, slow, and came down the bleachers toward her, and the empty field went very quiet.
<<speech "Josh">> "You didn't run out. You stopped caring." <</speech>> He stopped a step above her, close enough that she had to look up at him. <<speech "Josh">> "I saw it happen — the day you stopped calling me in for a talk and started calling me a file. I preferred you angry. Angry meant you still thought I could be something." <</speech>>
<<speech "Keisha">> "You're suspended — " <</speech>>
<<speech "Josh">> "Expelled," <</speech>> he corrected, almost gently. <<speech "Josh">> "And I don't care about that, Keisha. I never did." <</speech>>
And then it hit her.
Not the anger — the heat. It came out of nowhere, out of his flat, patient eyes, a wall of it, a tidal wave that slammed into her chest and stole her breath and turned her knees to jelly. She grabbed the rail of the bleachers, gasping. Her thighs pressed together and went slack, and a slick, shameful heat bloomed between them.
<<speech "Keisha">> "What — " <</speech>> she got out, and her voice came out wrong, hoarse, desperate. <<speech "Keisha">> "What did you — " <</speech>>
He was watching her, unmoved. Sober. Calm — the calm of a man who'd been waiting for exactly this.
<<speech "Josh">> "There it is," <</speech>> he murmured. <<speech "Josh">> "The enforcer of every rule on this campus, and your knees just gave out. That's what I do to people, Madam Vice Director. I make the rule book wet." <</speech>>
He walked past her, down the last step, and at the gate he paused without turning around.
<<speech "Josh">> "You want to finish this, you know where I live." <</speech>>
The gate clanged shut. She stood there with one hand on the rail, burning — and her body, her traitorous body, was already making the decision her brain was screaming against. She followed him. Out of the field, across the quad, through the streets, telling herself the whole way: you are the Vice Director, you are going to tell him exactly what you think, you are not going to his apartment. She knocked anyway.
His place was a bright modern box of a room — white walls, a big window, a fireplace that was actually lit. She hadn't known anyone his age owned a fireplace. There was a shopping bag on the armchair. He gestured at it.
<<speech "Josh">> "Put it on." <</speech>>
She opened it. Inside: a tiny purple sling bikini — a joke of a garment — a thick gold chain, and gold hoop earrings.
<<speech "Keisha">> "You want to play games with the Vice Director?" <</speech>> she heard herself say, and her own voice sounded reckless and warm and nothing like her. <<speech "Keisha">> "Fine. We play." <</speech>>
She stripped in front of him — slowly, deliberately, because she was still, in her head, winning this. She was going to seduce him and ruin him. She was going to make him hers, and then she was going to make him gone. She pulled the bikini on, strings disappearing between her cheeks, gold chain against her chest, and she was gorgeous in it and she knew it.
<video src="img/Keisha/Josh/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She gave him a show by the fire — arching, presenting, looking back over her shoulder with a grin that was all dare, the mandala stretching along her ribs, hoops swinging.
<<speech "Keisha">> "This what you wanted, Josh?" <</speech>> Her voice was honey. <<speech "Keisha">> "Come and take it." <</speech>>
She thought she was playing him. She thought she was in charge.
And then she was on the floor, and somehow — she would never be able to say how — the collar was around her neck, a thin black choker, and she was lying on her stomach looking up at him, and her hand was wrapped around the base of his cock, and her tongue was tracing the head — slow, deliberate, her eyes locked on his face. The fire crackled. Her gold chain lay on the floor beside them.
<video src="img/Keisha/Josh/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "There she is," <</speech>> he said softly, and the smile on his face was the smile of a man who'd never had a doubt. <<speech "Josh">> "The Vice Director. On her belly on my floor, working my cock like a good girl." <</speech>>
She wanted to say something cutting. What came out was a small, wrecked sound around the tip of him.
He made her finish him off with her hands and nothing else, and then he stood and zipped up, and the dismissal was the worst part.
<<speech "Josh">> "Get dressed, Madam Vice Director. I have a paper due." <</speech>>
She stood on shaking legs, humiliated, burning, makeup ruined. She walked out of his apartment and down the stairs and into the cold night, and she swore — swore — that the hearing would bury him, that she would see the door hit him on the way out, that she would never, ever go back. Her phone buzzed in her hand. The same number she'd never saved.
*Nice chain. I kept the collar.*
She didn't answer. She stood on the empty sidewalk for a long moment, the phone glowing in her hand, and then she went home, and she did not sleep, and she knew — with the part of her that ran the institution — that the institution was no longer the thing she was running from.
<<elseif _s is 2>>
<img src="img/Keisha/Corr2.jpg">
She dressed for war. That was the story she told herself, in the mirror, in the outfit she'd bought for a fundraiser and never worn: the sheer red mesh halter that left her breasts bare to the world, the short black-and-white plaid skirt, the red lipstick. It was armor, she decided. It was about reclaiming her dignity. She was going to walk into his apartment, and she was going to be the most beautiful, untouchable thing he'd ever seen, and then she was going to tell him it was over, and she was going to watch him watch her leave.
It was a lie. She knew it was a lie the way you know a fever.
He didn't summon her — she went on her own, which was worse, which meant the wanting had a shape now and the shape was hers. She told herself she was going to end it. She dressed for it like a general. And when he opened the door and looked at her — at the halter, the skirt, the lipstick — he said nothing. That was the cruelty of it. He looked at her the way you look at a weather forecast, and stepped aside.
<<speech "Josh">> "You look expensive," <</speech>> he said, which wasn't a compliment and wasn't an insult, and she hated that she couldn't tell which.
<<speech "Keisha">> "I look like the Vice Director," <</speech>> she said, "here to inform you that you're suspended, expelled, and — "
<<speech "Josh">> "Say the rest." <</speech>>
She couldn't. The word died in her throat. She stood in his doorway with her speech dissolving — the one about the board, the one about Kane, the one she'd practiced in the mirror until she'd believed it. She'd come to end this. She'd come dressed like a woman who ended things.
<<speech "Keisha">> "I'm here to tell you," <</speech>> she started, and her voice came out wrong, too soft, <<speech "Keisha">> "that this — that I — " <</speech>> and the wave came in over her words, and what she heard herself say instead was: <<speech "Keisha">> "that I came back." <</speech>>
He smiled, slow, and closed the door behind her. By the time the hour was over she was on her hands and knees in a white string bikini and white thigh-high socks with black stripes, his fist in her hair, his cock in her throat, her eyes watering and her body weeping and her mind a long way gone. The room had a patterned carpet and a round table, and she hated every inch of it, and she never wanted to leave.
<video src="img/Keisha/Josh/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He pulled out and stroked himself above her face and came across her tongue, her lips, her chin, her chest — thick, hot ropes — and she knelt there with her mouth open and her eyes half closed, catching the last of it, and when she looked up at him with his come still coating her lips, she was smiling. Small. Wet. Hungry. She couldn't stop it.
<video src="img/Keisha/Josh/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Josh">> "The woman who runs this campus," <</speech>> he said, almost kindly, "on her knees. That's the funniest thing I've ever seen."
She wanted to say she'd end this. She wanted to say she was in charge. What she said was:
<<speech "Keisha">> "Again." <</speech>>
And he smiled, slow and pleased, like a man collecting what was already his.
She left his apartment with her skirt on inside out and his scent all over her, and she walked home in the cold, telling herself the whole way that she was gathering evidence, that she was learning his weaknesses, that a Vice Director could afford to lose a few battles to win the war. It was a beautiful lie. She'd always been good at those — and the worst part was knowing it, and coming back anyway.
<<elseif _s is 3>>
<img src="img/Keisha/Corr3.jpg">
She'd gone back to work like a woman repaying a debt — meetings, approvals, the endless machinery of the university, everything exactly as it had always been, because nobody could know, nobody could see, the Vice Director was fine.
She was not fine.
The want lived under her skin now, a tide that rose at the wrong moments — in the boardroom, in the middle of Kane's toast, in the shower — and every time she surfaced from it, she found herself somewhere she hadn't meant to be. Twice she'd caught herself driving toward his street. The third time, she didn't turn around.
She came to him in nothing but the platform heels and a trench coat — she couldn't have said when the coat came off, or when she'd put the heels on; her clothes were a rumor now. She was still telling herself, all the way up the stairs, that she was going to tell him it was over, that she was the Vice Director, that she had a file and a board and a spine. He didn't say a word. He was on the white tufted chaise, waiting, and she went to him the way the tide goes to the moon.
<video src="img/Keisha/Josh/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She was on her hands and knees, back arched, the mandala stretching along her ribs, his hands spreading her open, his cock driving into her with a rhythm that had her rocking forward and crying out and hating herself and never wanting it to stop. And somewhere in the middle of it — for one clear, terrible second — she was herself. The Vice Director. The woman who'd tried to save him and failed, who'd lost hope and then lost everything else. She saw the whole shape of it: what she was doing, what he was doing to her, what she'd become. Her mouth opened to say something — to stop it, to scream — and then the wave took her again, and her eyes went soft, and she was gone.
He came inside her and pulled out, and she lay back on the white patterned couch, one leg raised in the white sock with black stripes, and his fingers held her open while the come spilled out of her — slow, thick, endless — and she watched it with her tongue out and her eyes glassy, and the tattoo on the inside of her arm caught the light.
*Nothing's going to change my world.*
She'd gotten it at nineteen, drunk and defiant and sure of everything. She stared at it now, and somewhere far away, in a small, dim room at the back of her own mind, the real Keisha wanted to laugh — or cry — at how wrong it had been.
<video src="img/Keisha/Josh/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Keisha">> "I love you, Josh," <</speech>> she heard herself say. Her voice was bright and empty — a reflex, a recording. <<speech "Keisha">> "I love you." <</speech>>
He didn't look at her. He was already pulling his pants up, checking his phone.
<<speech "Josh">> "I know," <</speech>> he said. <<speech "Josh">> "Clean yourself up. I'm done with you tonight." <</speech>>
She lay there in the cooling dark, come drying on her thigh, her arm stretched out in front of her — *Nothing's going to change my world* — and she knew, in the small dim room where the real her lived, that she'd never get out. The campus could run without her. It already did. The Vice Director of Havenbrook University lay on a student's couch with her legs open, and nobody in the world would believe it, and nobody in the world would care. Nothing's going to change my world. She couldn't remember a time the words had been true.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><h1>Trust Overload: $targetNPC.name</h1>
<<silently>>
/* Get the stage directly from the refreshed object */
<<set _s to $targetNPC.stages["jasper"]>>
<</silently>>\
<div class="narrative">
<<if _s is 1>>
<img src="img/Keisha/Normal.jpg">
Havenwood sat at the edge of campus behind its line of maples, a big old house that had been raising the university's strays longer than anyone remembered. Keisha visited it the way she visited everything — with a folder and a list — because the house ran on institutional money and the institution, in her experience, was a hungry machine that needed watching. Chanel met her at the door with flour on her forearm and the calm of a woman born to it, and led her into the kitchen, where the funding review was going to happen whether anyone wanted it to or not.
There was a student at the stove with his back to her — a quiet one, long sleeves, unhurried movements. She'd seen him around campus: the sociology major from the house, the one who read alone in the café and said little.
<<speech "Chanel">> "Jasper's making tea. He makes it for everyone. Sit." <</speech>>
Keisha sat. The review took forty minutes — the winter program, the repairs, the money that never quite stretched — and Jasper moved through the edges of it the whole time, silent, present, filling the kettle, setting out cups, one of the house's kids drifting through and stealing a cookie and vanishing again. When Chanel finally excused herself to check on something in the garden, he set a cup down in front of Keisha.
The tea smelled like rain on warm pavement. Clean and green and faintly sweet — a smell that belonged to the end of a long day, not to a gray morning full of spreadsheets. She took a sip, and something in her chest, some knot she'd been carrying since the board meeting, came undone. Just like that. She blinked.
<<speech "Keisha">> "This is excellent," <</speech>> she said, and her voice came out looser than she meant it to. <<speech "Keisha">> "What is it?" <</speech>>
<<speech "Jasper">> "Chamomile, mostly. And some other things." <</speech>> He said it without a smile, but there was one waiting at the corner of his mouth, and she found herself smiling back.
She stayed longer than the meeting warranted. That was the first strange thing — Keisha ran late the way other people ran early, and she had a full afternoon of approvals waiting, and she stayed on the porch with her tea while Jasper talked about the house's garden, the kids who'd planted it, the one who'd named the tomato plants after senators. It was absurd, and she laughed, and the laugh surprised her.
<<speech "Keisha">> "The tomato senator thing is the best story I've heard from this campus," <</speech>> she said. <<speech "Keisha">> "You should write it down." <</speech>>
<<speech "Jasper">> "I keep it for the good days," <</speech>> he said. <<speech "Jasper">> "Today seemed like one." <</speech>>
She didn't have an answer to that, so she drank her tea. He walked her to her car, easy, unhurried, and she got in and drove away, and somewhere around the second traffic light the day's weight settled back onto her shoulders.
She didn't think about the boy who made tea until that night.
That night, in her apartment — bright rooms with floor-to-ceiling windows looking out over the city — she couldn't settle. She made herself dinner, answered three emails, took a shower, and the whole time the evening kept coming back: the porch, the garden, the senators' tomatoes. The way her shoulders had sat differently for one hour. She found herself in the bedroom in front of the mirror, and then — she would never be able to say why, exactly — she was in the black lace set she'd bought on a whim and never worn, sheer patterned bra, matching thong, standing at the window with the city spread out below her, looking back over her shoulder at her own reflection. Her phone was in her hand. She hadn't picked it up. It had just been there.
She watched herself type: *You've ruined my evening. I can't stop thinking about your tea.* And then, before the part of her brain that ran the university could stop it, her thumb hit send — and she was sending him a photo.
<video src="img/Keisha/Jasper/1-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
She sat in the armchair by the window with the phone propped where the light was good, and she recorded the second video without quite deciding to — her hand moving between her thighs, slow, deliberate, her head tipped back against the chair, his name a shape in her mouth she didn't let out. When she finished, breathless and mortified, she sent it before she could unsend it, then lay on the floor of her living room with the phone on her chest, staring at the ceiling, thinking: what the hell is wrong with me.
<video src="img/Keisha/Jasper/1-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
His reply came a moment later. Two words, warm.
*Goodnight, Keisha.*
She read it three times, her heart doing something stupid, and told herself she was going to delete the conversation and never speak to him again and go back to being the Vice Director. She fell asleep with the phone in her hand instead.
<<elseif _s is 2>>
<img src="img/Keisha/Corr1.jpg">
She told herself it was a lapse. That was the story she rehearsed on the drive home and the walk to her door: a strange evening, a strange boy, a strange hour of weakness, and now it was over, and she was twenty-eight and sensible and the Vice Director of the university, and she was going to put it away and never mention it.
It didn't stick. Not because she wanted to see him — because she couldn't stop thinking about him, and the thinking was worse than the wanting, and when she got home to find him on her doorstep with two cups of tea and a paper bag from the bakery near the house, she almost cried. She didn't ask how he knew where she lived. Chanel, probably. Chanel knew everything.
<<speech "Jasper">> "Chanel said you had a day," <</speech>> he said, like that explained everything.
She had. The student senate had voted to defund the wellness program, Alina was out sick, and a freshman had walked into her office and cried for forty minutes because she didn't know where else to go. Keisha had handled all of it, because that was her job, and she'd been sitting in the empty office at seven with her hair coming loose and a stack of forms she couldn't face.
<<speech "Keisha">> "I'm twenty-eight, Jasper," <</speech>> she said. <<speech "Keisha">> "I'm the one who signs your paperwork. This — whatever this is — is not appropriate, and I'm going to need you to — " <</speech>>
She stopped, because he'd set the tea down in front of her and he was just standing there, patient, not arguing, and the scent was already working — the knot in her chest undoing itself one slow turn at a time.
<<speech "Jasper">> "Tell me about the meeting," <</speech>> he said.
And she did. That was the thing — she talked to him the way she talked to no one: about the senate, about the crying freshman, about the exhaustion she'd never admit to, and it didn't feel like a confession. It felt like talking. She let him make her dinner. She let him pick the music. She stayed until the streetlights came on, and she didn't check her phone once — which, for Keisha, was the closest thing to a confession.
She was the one who kissed him. That was the part she'd re-run in her head a hundred times — she had a car, she had an office, she had a spine, and she'd kissed a student on her own sofa with his tea still in her hand. He took her to the bedroom — light wood floors, a patterned rug — and she knelt in the pale pink lace bra she'd been wearing under her blouse, the one she'd put on that morning without quite admitting why, and he held the back of her head and she took him deep, eyes locked up on his face, and it was the most trust she'd ever put in another person's hands, and she knew it.
<video src="img/Keisha/Jasper/2-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
Afterward she washed her face and came back with her hair wet, and he was waiting on the white couch, and when he came across her upturned face she smiled through it — surprised, helpless, happy — and took him back into her mouth until he was clean. Then she sat back on the white rug, legs apart, his come still streaking her face and neck, and she laughed.
<video src="img/Keisha/Jasper/2-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Keisha">> "You're going to be the death of my career." <</speech>>
<<speech "Jasper">> "I know," <</speech>> he said, and he didn't sound sorry at all. <<speech "Jasper">> "I'll be gentle about it." <</speech>>
She should have been alarmed. Instead she lay back on the rug and looked at him — the quiet boy who made tea and remembered things — and thought, with a part of her she'd never met before: I could fall in love with this. And she was too warm and too undone to be frightened of it.
<<elseif _s is 3>>
<img src="img/Keisha/Corr2.jpg">
She'd drawn a line, and she'd drawn it badly, and she knew it. The line was: work is work, and he is not work, and she was going to stop — she was going to be sensible, be twenty-eight, be the Vice Director, be everything she'd built. She'd said it out loud to her own reflection the morning she found herself buying a red mesh halter and a plaid skirt she had no reason to own. She wore it to the house that evening anyway, telling herself it was a coincidence. That she'd just happened to change.
He was in the sitting room with the white couch and the folding screen and the vase of pink flowers, and he looked up when she came in, and his face did something soft and specific that she felt in her chest.
<<speech "Keisha">> "I can't keep doing this," <</speech>> she said, before she could lose the line of it. <<speech "Keisha">> "I'm the Vice Director. You're a student. I have a responsibility here, and I — " <</speech>>
He crossed the room and kissed her. It was the gentlest thing anyone had ever done to her, and the line she'd drawn went somewhere she couldn't see it anymore. He undressed her slowly — the halter, the skirt, the last of the fight — and pulled a bright orange crop top over her head, and she let him.
She straddled him on the white couch, back to his chest, facing the bright windows, and it was the first time she'd ever been on top of something without needing to control it — she was just riding, eyes half closed, mouth open, hoop earrings swinging, the orange crop top riding up over her breasts, letting him take the rhythm from her hips. His hand found the mandala on her side, steady, grounding, and she cried out, and she thought: this is what it feels like to stop running the room.
<video src="img/Keisha/Jasper/3-1.mp4" width="1000" height="480" autoplay controls loop muted> </video>
He finished inside her, deep, and pulled out, and she held herself open for him with her turquoise nails — the hood piercing glinting, the come leaking slow and white and endless — showing him every drop, because she wanted him to see it, wanted him to know what he'd left in her.
<video src="img/Keisha/Jasper/3-2.mp4" width="1000" height="480" autoplay controls loop muted> </video>
<<speech "Keisha">> "I trust you," <</speech>> she said, and the words came out like a door opening. <<speech "Keisha">> "Jasper — I trust you. Completely ❤️." <</speech>>
He gathered her up afterward, and they lay on the white couch with the pink flowers and the folding screen, and he said the thing he'd been saving — quiet, warm, sure:
<<speech "Jasper">> "The campus can have the Vice Director. I get the woman who drinks my tea and laughs at my jokes." <</speech>>
She called him absurd. She stayed.
The campus got the Vice Director back, crisp and composed and exactly where she'd always been. What nobody saw was the woman who drove to Havenwood when the day was done, who walked into the big house and felt the knot in her chest come undone before the tea was even poured, who let a quiet boy take her bag and her hand and her whole careful evening. Chanel noticed, in her way — noticed that the Vice Director laughed at the garden now, and stayed for dinner, and called the tomato plants by their names. Jasper noticed too, and he smiled into his cup, and he thought: I'll keep her. She was part of the house now, the way he'd always meant for the ones he loved to be — and she'd never felt less like running the room in her life.
<</if>>
</div>
<hr>
<div style="text-align: center;">
/* Calculate total allowed moves for the current player */
<<set _totalMoves to (1 + $extraActions[$activeTurn])>>
<<if $chainTarget !== null>>
/* If a chain reaction happened, it MUST be FOLLOWED first */
<p style="color: #ff66cc;"><strong>The influence spreads to $chainTarget.name...</strong></p>
[[Follow the Chain|ChainReaction]]
<<elseif $actionsTaken < _totalMoves>>
/* If no chain, but you have extra actions left, go back to the Hub */
<p style="color: #00ffcc;"><strong>You still have energy remaining...</strong></p>
[[Return to Hub|Hub]]
<<else>>
/* No moves left, end the turn */
[[End Turn|EndTurnLogic]]
<</if>>
</div><<silently>>
/* Pop the next scene from the queue */
<<set _nextEntry to $clashScenes.shift()>>
<<set _moreAfter to $clashScenes.length gt 0>>
/* Each queued scene must render with its OWN target NPC — the queue
entry carries the npc name. */
<<set _queuedNPC to $roster.find(function(c) { return c.name === _nextEntry.npc; })>>
<<if _queuedNPC>> <<set $targetNPC to _queuedNPC>> <</if>>
/* Do NOT hijack $activeTurn — the turn still belongs to the attacker,
who may have actions left. The winner is used only for scene rendering
(videos + generic stage lookups) via the one-shot $sceneMasterOverride,
which the scene's videoWall consumes and clears. */
<<set $sceneMasterOverride to $clashWinnerID>>
<<if _moreAfter>>
/* More scenes remain after this one. Save the real action count
only once. On queues of 3+ scenes, later intermediate entries
arrive with $actionsTaken already forced to 0; overwriting the
saved value here granted the attacker an unintended extra AI
action and could produce an apparent double stage gain. */
<<if $clashSavedActions === null or $clashSavedActions === undefined>>
<<set $clashSavedActions to $actionsTaken>>
<</if>>
/* Set actionsTaken to 0 so the scene footer shows
"Return to Hub" — Hub will intercept and come back here */
<<set $actionsTaken to 0>>
<<else>>
/* Last scene — restore real $actionsTaken so the scene
footer correctly shows Hub (moves left) or End Turn */
<<if $clashSavedActions !== null and $clashSavedActions !== undefined>>
<<set $actionsTaken to $clashSavedActions>>
<<set $clashSavedActions to null>>
<</if>>
/* $activeTurn was never changed: it remains the attacker, so the
footer nav uses the attacker's action budget and the turn
passes correctly to Hub (more actions) or EndTurnLogic. */
<</if>>
<</silently>>
<<goto _nextEntry.scene>><<silently>>
<<set _player to $vices[$playerID]>>
<<set _mID to ($activeTurn === "none" ? $playerID : $activeTurn)>>
<<set _actor to _player>>
<<set _weapon to _player.weapon.toLowerCase()>>
<<set _maxFailures to 2>>
<<set _prevOutcome to $outcome>>
<<set $spendResult to "">>
<<if $targetNPC !== null and _player.gauge gte 10 and (_prevOutcome === "FIND_TOTAL_FAIL" or _prevOutcome === "CONQUEST_FAIL")>>
<<run adjustGauge($playerID, -10)>>
<<if _prevOutcome === "CONQUEST_FAIL">>
/* Forced conquest — guaranteed success, but still an attempt on
her this turn for the repeat malus. */
<<set $attemptLog[$targetNPC.id] to ($attemptLog[$targetNPC.id] || 0) + 1>>
<<gaugeSpendSuccess>>
<<set $spendResult to "FORCED">>
<<else>>
/* Forced find — she is located, but the conquer roll still decides */
<<set _mult to $targetNPC.weakness[_weapon]>>
<<set _friends to $socialMap[$targetNPC.id] || []>>
<<if $activeEclipse.nathanWeb and _mID === "nathan">>
<<if _friends.some(fID => { var r = $roster.find(r => r.id === fID); return r !== undefined and r.stages.nathan === 3; })>>
<<set _mult += 3>>
<</if>>
<</if>>
<<if $omenData and $omenData.master === _mID and $omenData.npc === $targetNPC.id>>
<<set _mult += 1>>
<</if>>
<<if _actor.revengeScented>>
<<set _mult to Math.max(1, _mult - 2)>>
<<set $vices[_mID].revengeScented to false>>
<</if>>
/* Same-girl repeat malus, identical to the normal roll: -30
percentage points per earlier attempt this turn, applied
inside rollToConquer. The attempt is logged AFTER the roll —
the engine penalty reads the PRIOR count. */
<<set $repeatMalus to 30 * ($attemptLog[$targetNPC.id] || 0)>>
<<if rollToConquer(_mult, _mID, $targetNPC.id)>>
<<set $attemptLog[$targetNPC.id] to ($attemptLog[$targetNPC.id] || 0) + 1>>
<<gaugeSpendSuccess>>
<<set $spendResult to "FORCED">>
<<else>>
<<set $attemptLog[$targetNPC.id] to ($attemptLog[$targetNPC.id] || 0) + 1>>
<<set $outcome to "CONQUEST_FAIL">>
<<set $spendResult to "FAILED">>
<</if>>
<</if>>
<<else>>
<<set $spendResult to "NONE">>
<</if>>
<</silently>>\
<h1>Day $gameDay — Your Turn: <<print _player.name>></h1>
<div class="player-log" style="border: 1px solid #ffcc00; padding: 20px; background: #1a1400; font-family: monospace; color: #ffcc00; line-height: 1.5;">
<<if $spendResult === "FORCED">>
<p style="color: #ffcc00;">[RESONANCE EXPENDED -10%]: You force the connection through.</p>
<p style="color: #00ffcc;">[SUCCESS]: Target acquired — <<print $targetNPC.name>></p>
<<if $repeatMalus gt 0>>
<p style="color:#ffaa00;">[ON GUARD]: -<<print $repeatMalus>>% — repeated attempt on her this turn.</p>
<</if>>
<<if $mirrorPending>>
<p style="color: #ff33cc; font-weight: bold;">
[PREDATOR'S RUSH]: Josh's mark is on you — he STEALS this conquest.
</p>
<</if>>
<<if $chainTarget !== null>>
<p style="color: #ff66cc;">[CHAIN REACTION PENDING: <<print $chainTarget.name>>]</p>
<</if>>
<br>
<<link "Continue" $sceneToLoad>>
<<set $mirrorPending to null>>
<</link>>
<<elseif $spendResult === "FAILED">>
<p style="color: #ffcc00;">[RESONANCE EXPENDED -10%]: You located her — but she resisted the final push.</p>
<p>[RESISTED]: <<print $targetNPC.name>> held firm.</p>
<<if $repeatMalus gt 0>>
<p style="color:#ffaa00;">[ON GUARD]: -<<print $repeatMalus>>% — repeated attempt on her this turn.</p>
<</if>>
<br>
<<if $failures lt _maxFailures || _player.ultType === "primal_surge">>
[[Try Again|TargetSelection]]
<<else>>
[[End Turn|EndTurnLogic]]
<</if>>
<<else>>
<p>[SYSTEM]: Cannot spend Resonance right now.</p>
<br>[[Return to Hub|Hub]]
<</if>>
</div><<silently>>
/* ============================================================
GALLERY — ARCHIVE VIEWER
Every entry resets ALL girl variables to their pristine state
so viewing scenes can never corrupt a real playthrough.
============================================================ */
<<if setup.pristineRoster>>
<<set $roster to JSON.parse(JSON.stringify(setup.pristineRoster))>>
<</if>>
/* Clear scene-scope state */
<<set $targetNPC to null>>
<<set $mirrorPending to null>>
<<set $sceneMasterOverride to null>>
<<set $chainTarget to null>>
<<set $attemptLog to {}>>
<<set $repeatMalus to 0>>
<<set $clashScenes to []>>
<<set $clashSavedActions to null>>
<<set $transferredNPCs to []>>
<<set $followerID to null>>
<<set $groupEventMaster to null>>
<<set $galleryMode to true>>
<<set $actionsTaken to 0>>
<<set $stanceChosen to false>>
<<set $extraActions to { nathan: 0, josh: 0, jasper: 0, caldwell: 0 }>>
/* Restore the four Vices to a clean, un-eliminated state */
<<for _gv range ["nathan", "josh", "jasper", "caldwell"]>>
<<set $vices[_gv].isEliminated to false>>
<<set $vices[_gv].master to null>>
<<set $vices[_gv].slaves to []>>
<<set $vices[_gv].following to null>>
<<set $vices[_gv].silencedBy to null>>
<<set $vices[_gv].silencedTimer to 0>>
<<set $vices[_gv].jammedTimer to 0>>
<<set $vices[_gv].revengeAgainst to null>>
<<set $vices[_gv].grudge to null>>
<</for>>
<</silently>>\
<h1 style="text-align:center; color: #ffcc00; text-shadow: 0 0 10px #ffcc00; letter-spacing: 4px;">THE GALLERY</h1>
<div style="text-align:center; color:#888; font-size:0.9em; margin-bottom:30px;">
Archive of the experiment. Every scene here is a memory — nothing you view changes the record.
</div>
<<for _gvID range ["nathan", "josh", "jasper", "caldwell"]>>
<<capture _gvID>>
<<set _gvName to $vices[_gvID].name>>
<<set _gvWeapon to $vices[_gvID].weapon>>
<h2 style="color: #00ffcc; border-bottom: 1px solid #333; padding-bottom: 8px; margin-top: 40px;">
<<print _gvName>> — <<print _gvWeapon>>
</h2>
<div class="gallery-vice" style="display:flex; flex-wrap:wrap; gap:12px; justify-content:center;">
<<for _girl range $roster>>
<<capture _girl _gvID _gScene>>
<<set _gScene to _gvName + "_" + _girl.name>>
<<if Story.has(_gScene)>>
<div style="width:200px; border:1px solid #333; border-radius:10px; background:#0d0d0d; text-align:center; padding:12px;">
<img @src="'img/' + _girl.name + '/Normal.jpg'" style="width:100%; aspect-ratio:1/1; object-fit:cover; object-position:top; border-radius:6px;">
<div style="margin:8px 0 6px; font-weight:bold; color:#fff;"><<print _girl.name>></div>
<div style="display:flex; gap:6px; justify-content:center;">
<<link "Lv1">>
<<set $targetNPC to _girl>>
<<set _girl.stages[_gvID] to 1>>
<<set $activeTurn to _gvID>>
<<set $sceneMasterOverride to null>>
<<goto _gScene>>
<</link>>
<<link "Lv2">>
<<set $targetNPC to _girl>>
<<set _girl.stages[_gvID] to 2>>
<<set $activeTurn to _gvID>>
<<set $sceneMasterOverride to null>>
<<goto _gScene>>
<</link>>
<<link "Lv3">>
<<set $targetNPC to _girl>>
<<set _girl.stages[_gvID] to 3>>
<<set _girl.owner to _gvID>>
<<set $activeTurn to _gvID>>
<<set $sceneMasterOverride to null>>
<<goto _gScene>>
<</link>>
</div>
</div>
<</if>>
<</capture>>
<</for>>
</div>
<</capture>>
<</for>>
<hr style="border-color:#333; margin:40px 0;">
<h2 style="text-align:center; color:#ff00ff;">MINOR EVENT — MASS RESONANCE</h2>
<p style="text-align:center; color:#aaa; font-size:0.9em;">
Choose a Vice. In this scene, that Vice has conquered every subject at full level,
and all rival Vices have fallen to him.
</p>
<div style="display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:20px;">
<<for _meID range ["nathan", "josh", "jasper", "caldwell"]>>
<<capture _meID>>
<<set _meLabel to $vices[_meID].name + " (All Conquered)">>
<<link _meLabel>>
<<set $galleryMode to true>>
<<set $groupEventMaster to _meID>>
<<for _gAll range $roster>>
<<set _gAll.owner to _meID>>
<<set _gAll.stages.nathan to 0>>
<<set _gAll.stages.josh to 0>>
<<set _gAll.stages.jasper to 0>>
<<set _gAll.stages.caldwell to 0>>
<<set _gAll.stages[_meID] to 3>>
<</for>>
<<for _gv2 range ["nathan", "josh", "jasper", "caldwell"]>>
<<if _gv2 !== _meID>>
<<set $vices[_gv2].isEliminated to true>>
<<set $vices[_gv2].master to _meID>>
<</if>>
<</for>>
<<set _meSlaves to []>>
<<for _gv3 range ["nathan", "josh", "jasper", "caldwell"]>>
<<if _gv3 !== _meID>>
<<run _meSlaves.push(_gv3)>>
<</if>>
<</for>>
<<set $vices[_meID].slaves to _meSlaves>>
<<set $activeTurn to _meID>>
<<goto "MinorEvent_Scene">>
<</link>>
<</capture>>
<</for>>
</div>
<div style="text-align:center; margin-top:40px; padding-bottom:60px;">
<p style="color:#666; font-size:0.8em;">Returning to the Gallery resets every subject.</p>
</div><<silently>>
<<set _q to $kaneQuest>>
<<set _rewardValid to (_q and _q.winner !== null and !_q.rewardClaimed and _q.winner === $playerID)>>
<<if !_rewardValid>>
<<goto "Hub">>
<<else>>
<<set _winnerID to _q.winner>>
<<set _winnerObj to $vices[_winnerID]>>
<<set _elig to setup.questRewardEligible(_winnerID)>>
<<set _qGirl to setup.questGirl()>>
<<set _resonanceOnly to (_elig.length === 0)>>
<<if _resonanceOnly>>
<<set $vices[_winnerID].gauge to 100>>
<<set $kaneQuest.rewardClaimed to true>>
<</if>>
<</if>>
<</silently>>\
<<if _rewardValid>>
<h1 style="text-align:center; color:#ffcc00; text-shadow:0 0 10px #ffcc00; letter-spacing:3px;">KANE'S REWARD — YOUR CHOICE</h1>
<div class="narrative" style="border:2px solid #ffcc00; padding:20px; background:#1a1400; line-height:1.6;">
<<speech "Maxwell" "Director Kane">>
<<if _resonanceOnly>>
"The race is won, <<print _winnerObj.name>>, but no eligible subject remains. The unused force returns to you as absolute Resonance."
<<else>>
"The race is won, <<print _winnerObj.name>>. I will not choose the recipient for you. Review every eligible subject and decide whose connection advances by one stage."
<</if>>
<</speech>>
<p style="text-align:center; color:#aaa; font-size:0.9em;">
Challenge target: <strong style="color:#ffcc00;"><<print (_qGirl ? _qGirl.name : "completed target")>></strong><br>
<<if _resonanceOnly>>
No stage reward is possible; your Resonance is now 100%.
<<else>>
Select any eligible girl below full synchronization. Your chosen girl gains exactly one <<print _winnerObj.name>> stage and ownership, and your Resonance becomes 100%.
<</if>>
</p>
</div>
<<if !_resonanceOnly>>
<div style="display:flex; flex-wrap:wrap; gap:16px; justify-content:center; align-items:flex-start; margin-top:24px;">
<<nobr>>
<<for _i to 0; _i lt _elig.length; _i++>>
<<set _girlId to _elig[_i].id>>
<<capture _girlId>>
<<set _g to $roster.find(c => c.id === _girlId)>>
<<set _gStage to _g.stages[_winnerID]>>
<div style="display:block; width:190px; height:auto; min-height:0; border:1px solid #ffcc00; border-radius:10px; background:#111; text-align:center; overflow:hidden; box-sizing:border-box;">
<img @src="'img/' + _g.name + '/Portrait.jpg'" style="display:block; width:100%; height:auto; aspect-ratio:2/3; object-fit:contain; background:#080808;">
<div style="padding:10px;">
<div style="font-weight:bold; color:#fff;"><<print _g.name>></div>
<div style="font-size:0.72em; color:#aaa; margin:5px 0;">
Stage: <<print _gStage>> → <<print Math.min(3, _gStage + 1)>><br>
<<print (leadingRival(_g, null) ? $vices[leadingRival(_g, null)].name + "'s influence " + _g.stages[leadingRival(_g, null)] + "/3" : "Unclaimed")>>
</div>
<<set _claimLabel to "CHOOSE " + _g.name.toUpperCase()>>
<<link _claimLabel>>
<<set _freshEligible to setup.questRewardEligible($kaneQuest.winner)>>
<<set _chosenGirl to _freshEligible.find(c => c.id === _girlId)>>
<<if _chosenGirl and !$kaneQuest.rewardClaimed>>
<<run setup.questApplyReward($kaneQuest.winner, _girlId)>>
<<set $targetNPC to $roster.find(c => c.id === _girlId)>>
<<set $activeTurn to $kaneQuest.winner>>
<<set $sceneMasterOverride to $kaneQuest.winner>>
<<if $kaneRewardWatched>> <<set $actionsTaken to 99>> <</if>>
<<set _winName to $vices[$kaneQuest.winner].name>>
<<set $sceneToLoad to setup.sceneFor(_winName, $targetNPC, $kaneQuest.winner)>>
<<if not Story.has($sceneToLoad)>> <<set $sceneToLoad to _winName + "_Generic">> <</if>>
<<set $kaneQuest.rewardClaimed to true>>
<<goto $sceneToLoad>>
<<else>>
<<goto "Hub">>
<</if>>
<</link>>
</div>
</div>
<</capture>>
<</for>>
<</nobr>>
</div>
<div style="text-align:center; margin-top:25px; color:#ffcc00; font-weight:bold;">
Choose one subject to continue. No automatic selection will be made for the player.
</div>
<<else>>
<div style="text-align:center; margin-top:30px; padding-bottom:50px;">
[[Continue|Hub]]
</div>
<</if>>
<</if>>/* ============================================================
PERKS & KEYS — module 8
Contains: fixed per-girl perks (identity) + per-run randomized
Keys / Spares assignment. Called from StoryInit.
============================================================ */
/* ============================================================
KEYS & SPARES — FIXED KEYS + RANDOMIZED SPARES (separate pools)
- KEYS are FIXED: each Vice always has the same 5 Key girls.
(v2 set below excludes the 8 girls removed until v3: leah,
hazel, karlee, vanna are restored as keys in v3 — see the
V3_GIRLS_REFERENCE.md file. Their temporary 5th spots here are
kailey / gina / caprice / maya.)
- SPARES are RANDOMIZED: each run draws 5 from a SEPARATE spare
pool per Vice (never from the key list, never the same pool).
- Spares may overlap between Vices.
============================================================ */
setup.FIXED_KEYS = {
nathan: ["eva", "kylie", "isabella", "aria"],
josh: ["lily", "elsa", "alina", "lana"],
jasper: ["casey", "chanel", "carolina", "melody"],
caldwell: ["anya", "rae", "adriana", "keisha"]
};
/* SPARE pools — 9 candidates per Vice, 5 are drawn each run.
Never contains that Vice's own keys. (v2 set: the 4 removed
girls — alex, scarlit, sybil, violet — are excluded until v3;
see V3_GIRLS_REFERENCE.md for their restore.) */
setup.SPARE_POOLS = {
nathan: ["elsa", "marie", "lulu", "kailey", "anya", "madi", "maya", "gina", "claire"],
josh: ["claire", "savannah", "gina", "jade", "marie", "kali", "rae", "lacy", "adriana"],
jasper: ["isabella", "caprice", "blake", "adria", "jade", "alina", "lulu", "savannah", "aria"],
caldwell: ["isabella", "chanel", "maya", "lacy", "adria", "madi", "lana", "eva", "blake"]
};
/* Union of keys + spares (used by Kane quests as the "in play" pool) */
setup.KEY_POOL = (function() {
var seen = {};
var out = [];
["nathan", "josh", "jasper", "caldwell"].forEach(function(v) {
setup.FIXED_KEYS[v].forEach(function(id) { if (!seen[id]) { seen[id] = true; out.push(id); } });
setup.SPARE_POOLS[v].forEach(function(id) { if (!seen[id]) { seen[id] = true; out.push(id); } });
});
return out;
})();
/* Shuffle helper */
setup.shuffleArr = function(a) {
for (var i = a.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var t = a[i]; a[i] = a[j]; a[j] = t;
}
return a;
};
/* ASSIGN KEYS & SPARES (per run):
Keys are fixed (never randomized). Spares: 5 random from each
Vice's SEPARATE spare pool. Roster keyTo is synced. */
setup.assignRandomKeys = function() {
var order = ["nathan", "josh", "jasper", "caldwell"];
var vices = State.variables.vices;
order.forEach(function(v) {
/* Keys: fixed, never randomized */
vices[v].keys = setup.FIXED_KEYS[v].slice();
/* Spares: 5 random from the separate spare pool */
var cand = setup.shuffleArr(setup.SPARE_POOLS[v].slice());
vices[v].backups = cand.slice(0, 5); /* 5 of the 9 */
});
/* Sync roster keyTo */
var roster = State.variables.roster || [];
roster.forEach(function(c) {
var assigned = null;
order.forEach(function(v) {
if (setup.FIXED_KEYS[v].indexOf(c.id) !== -1) assigned = v;
});
c.keyTo = assigned;
});
};
/* ============================================================
FIXED PER-GIRL PERKS — her identity, stable across runs.
Each girl belongs to one archetype (6 girls per archetype).
============================================================ */
setup.girlPerks = {
/* Devotee — her owner gains bonus Resonance on every conquest */
"lily": "devotee", "lulu": "devotee", "keisha": "devotee", "kylie": "devotee",
"rae": "devotee", "kailey": "devotee", "melody": "devotee",
/* Socialite — her friends are easier to find */
"marie": "socialite", "blake": "socialite", "gina": "socialite",
"savannah": "socialite", "maya": "socialite", "isabella": "socialite",
/* Sentinel — rivals struggle to take her owner's Key girls */
"eva": "sentinel", "chanel": "sentinel", "adriana": "sentinel",
"lana": "sentinel", "casey": "sentinel",
/* Confidante — chain reactions from her friends trigger more often */
"madi": "confidante", "elsa": "confidante", "kali": "confidante",
"aria": "confidante", "anya": "confidante", "caprice": "confidante",
"alina": "confidante",
/* Persuader — her friends are easier to conquer */
"carolina": "persuader", "lacy": "persuader", "jade": "persuader",
"claire": "persuader", "adria": "persuader"
};
/* Perk display data + effect values.
Effects are ~10-15% as designed. */
setup.perkInfo = {
"devotee": { name: "Devotee", icon: "♪", blurb: "+5 Resonance on every conquest you make" },
"socialite": { name: "Socialite", icon: "◈", blurb: "+10% to find her friends" },
"confidante": { name: "Confidante", icon: "✧", blurb: "+10% to chain reactions from her friends" },
"persuader": { name: "Persuader", icon: "⚓", blurb: "+10% to conquer her friends" },
"sentinel": { name: "Sentinel", icon: "✦", blurb: "-10% to rivals trying to take your Key girls" }
};
/* --- helpers --- */
setup.getPerk = function(girlId) {
return setup.girlPerks[girlId] || null;
};
setup.getPerkInfo = function(girlId) {
var k = setup.getPerk(girlId);
return k ? setup.perkInfo[k] : null;
};
/* Masters with at least one girl under their influence (Stage 1+) carrying
the given perk — owner marks only full conquests. */
setup.perkOwners = function(perkKey) {
var roster = State.variables.roster || [];
var out = [];
["nathan", "josh", "jasper", "caldwell"].forEach(function(m) {
if (roster.some(function(c) { return c.stages[m] > 0 && setup.getPerk(c.id) === perkKey; })) {
out.push(m);
}
});
return out;
};
/* True if one of girlId's social friends carries the perk and is under
masterId's influence (Stage 1+) */
setup.hasPerkFriend = function(girlId, perkKey, masterId) {
var smap = State.variables.socialMap || {};
var roster = State.variables.roster || [];
var friends = smap[girlId] || [];
return friends.some(function(fId) {
var f = roster.find(function(c) { return c.id === fId; });
return f && f.stages[masterId] > 0 && setup.getPerk(fId) === perkKey;
});
};
/* ============================================================
PERK-AWARE AI — how each Vice values girls
============================================================ */
/* Per-Vice affinity: ordered list of perks this Vice favors most.
Used to nudge CPU target choice (see setup.perkWeight). */
setup.perkAffinity = {
"nathan": ["confidante", "devotee", "socialite", "persuader", "sentinel"],
"josh": ["socialite", "persuader", "devotee", "sentinel", "confidante"],
"jasper": ["sentinel", "confidante", "persuader", "socialite", "devotee"],
"caldwell": ["persuader", "socialite", "sentinel", "devotee", "confidante"]
};
/* Base claim value of a girl by her own perk (universal: everyone
wants gauge + force multipliers). */
setup.perkValue = function(girlId) {
var p = setup.getPerk(girlId);
if (!p) return 0;
if (p === "devotee") return 3; /* gauge engine */
if (p === "sentinel") return 2; /* defense + deny */
return 2; /* socialite/confidante/persuader */
};
/* Extra weight for a girl whose perk is high on this Vice's affinity list */
setup.perkAffinityBonus = function(masterId, girlId) {
var p = setup.getPerk(girlId);
if (!p) return 0;
var aff = setup.perkAffinity[masterId] || [];
var idx = aff.indexOf(p);
if (idx === -1) return 0;
/* top pick +2, second +1, rest 0 */
return idx === 0 ? 2 : (idx === 1 ? 1 : 0);
};
/* Synergy: is this girl a friend of a perk the master already owns?
Socialite/Confidante/Persuader all make their friends valuable. */
setup.perkSynergyBonus = function(masterId, girlId) {
var bonus = 0;
if (setup.hasPerkFriend(girlId, "socialite", masterId)) bonus += 2;
if (setup.hasPerkFriend(girlId, "confidante", masterId)) bonus += 2;
if (setup.hasPerkFriend(girlId, "persuader", masterId)) bonus += 2;
return Math.min(bonus, 2); /* cap: a girl can only be pushed so much */
};
/* The full CPU target-weight for a girl.
Returns 0..N — CPU_Process duplicates the girl that many extra times. */
setup.perkWeight = function(masterId, girlId) {
var roster = State.variables.roster || [];
var girl = roster.find(function(c) { return c.id === girlId; });
if (!girl) return 0;
var w = 0;
/* 1. Claim value: the girl's own perk */
w += setup.perkValue(girlId);
/* 2. Affinity: does her perk suit this Vice's playstyle? */
w += setup.perkAffinityBonus(masterId, girlId);
/* 3. Synergy: friends of perks this master owns are cheap/profitable */
w += setup.perkSynergyBonus(masterId, girlId);
return w;
};
/* ============================================================
SUBJECT FILE POPUP (batch 72) - bios-style dialog for any girl,
opened by clicking her name on a selection screen.
Used by: TargetSelection, ShieldSelection, Caldwell_AnchorSelect.
============================================================ */
setup.openSubjectFile = function(npcId) {
var c = State.variables.roster.find(function(g) { return g.id === npcId; });
if (!c) return;
var isMax = Object.values(c.stages).some(function(s) { return s >= 3; });
var img = isMax ? "PortraitCorr.jpg" : "Portrait.jpg";
var html = "";
html += '<div style="display:flex; gap:14px; align-items:flex-start; text-align:left;">';
html += '<img src="img/' + c.name + '/' + img + '" style="width:130px; height:130px; aspect-ratio:1/1; object-fit:cover; object-position:top center; border-radius:8px; border:2px solid #ff66cc; flex-shrink:0;">';
html += '<div style="flex:1; min-width:0;">';
html += '<div style="display:flex; justify-content:space-between; align-items:flex-start; gap:8px;">';
html += '<div style="color:#ff66cc; font-size:1.5em; font-weight:bold;">' + c.name + '</div>';
if (c.keyTo !== null) {
html += '<span style="background:#ffcc00; color:#000; font-size:0.65em; font-weight:bold; text-transform:uppercase; padding:3px 8px; border-radius:4px;">Key: ' + State.variables.vices[c.keyTo].name + '</span>';
}
html += '</div>';
html += '<div style="margin:8px 0;">';
c.traits.forEach(function(t) {
html += '<span style="background:#333; color:#00ffcc; border:1px solid #00ffcc; margin:0 5px 5px 0; display:inline-block; padding:3px 8px; border-radius:4px; font-weight:bold; text-transform:uppercase; font-size:0.65em;">' + t + '</span>';
});
var pk = setup.getPerkInfo(c.id);
if (pk) {
html += '<span style="background:#ff66cc; color:#000; margin:0 5px 5px 0; display:inline-block; padding:3px 8px; border-radius:4px; font-weight:bold; font-size:0.65em;">' + pk.icon + ' ' + pk.name + '</span>';
}
if (c.imprint) {
html += '<span style="background:#200; color:#f00; border:1px solid #f00; margin:0 5px 5px 0; display:inline-block; padding:3px 8px; border-radius:4px; font-size:0.65em;">Imprinted: ' + State.variables.vices[c.imprint].name + '</span>';
}
html += '</div>';
html += '<div style="font-size:0.85em; line-height:1.35; color:#ccc; margin:8px 0;">' + c.desc + '</div>';
html += '<div style="font-family:monospace; font-size:0.72em; color:#888; background:#000; padding:8px; border-radius:4px; display:grid; grid-template-columns:1fr 1fr; gap:5px; border:1px solid #222; margin-top:8px;">';
html += '<div>LOVE: ' + c.weakness.love + '</div><div>LUST: ' + c.weakness.lust + '</div>';
html += '<div>TRUST: ' + c.weakness.trust + '</div><div>WILL: ' + c.weakness.will + '</div>';
html += '</div></div></div>';
Dialog.setup(c.name + ' \u2014 Subject File', 'target-bio-dialog');
Dialog.wiki(html);
Dialog.open();
};
<h1 style="text-align:center; color:#00ffcc;">FOUR VICES — PLAYER TUTORIAL</h1>
<p style="text-align:center; color:#aaa;">Every section starts closed. Open only the subject you want to read.</p>
<details style="border:1px solid #00ffcc; background:#071515; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">QUICK START — What do I do on my first turn?</summary>
<div style="padding:12px; line-height:1.55;">
<ol>
<li>Look at the <strong>Hub</strong>. You normally receive one action.</li>
<li>Open <strong>Target Subject</strong>.</li>
<li>Choose an unlocked girl. Higher availability makes her easier to locate; a higher weakness to your Vice makes her easier to influence.</li>
<li>The game automatically rolls to find her and then rolls to advance your influence.</li>
<li>A success raises your personal stage with her and usually gives you <strong>+20 Resonance</strong>.</li>
<li>At Stage 3 she becomes fully conquered and locked to her owner.</li>
<li>Use Resonance for scouting, shields, curses, clashes, forced success, and your Ultimate.</li>
<li>Build control of your Keys, weaken rival Keys, eliminate rival Masters, or conquer the whole roster.</li>
</ol>
<p><strong>You cannot permanently ruin the game by choosing a low-probability target.</strong> Failed attempts, rival theft, eclipses, and clashes are part of the game. The Board shows the current state.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffcc00; font-weight:bold;">OPEN THE FULL TUTORIAL INDEX</summary>
<div style="padding:12px; line-height:1.8;">
<ul>
<li>[[1. Interface, turns, and actions|Tutorial_CoreLoop]]</li>
<li>[[2. Girls, stages, ownership, finding, and conquest|Tutorial_Targeting]]</li>
<li>[[3. Resonance and manifestations|Tutorial_Resonance]]</li>
<li>[[4. The four Ultimates|Tutorial_Ultimates]]</li>
<li>[[5. Shadowing, guarding, clashes, and crushing defeats|Tutorial_Clashes]]</li>
<li>[[6. Keys, Spare Keys, elimination, and captured Masters|Tutorial_Masters]]</li>
<li>[[7. Midnight events and Mass Resonance|Tutorial_Midnight]]</li>
<li>[[8. Eclipse themes and Eclipse events|Tutorial_Eclipses]]</li>
<li>[[9. Kane's challenge|Tutorial_Kane]]</li>
<li>[[10. Social links, groups, traits, and perks|Tutorial_GroupsPerks]]</li>
<li>[[11. Victory conditions and practical strategy|Tutorial_Victory]]</li>
</ul>
</div>
</details>
<div style="text-align:center; margin-top:25px;">
<<link "RETURN TO GAME">>
<<set _tutorialReturn to ($tutorialReturnPassage && Story.has($tutorialReturnPassage) ? $tutorialReturnPassage : "Hub")>>
<<set $tutorialReturnPassage to "Hub">>
<<goto _tutorialReturn>>
<</link>>
</div><h1>1. Interface, Turns, and Actions</h1>
<details style="border:1px solid #00ffcc; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">OPEN: THE BASIC TURN LOOP</summary>
<div style="padding:12px; line-height:1.55;">
<p>The normal turn order is <strong>Nathan → Josh → Jasper → Caldwell</strong>. Eliminated Masters are skipped. If you selected a Vice, you directly control that Vice; the other active Masters are controlled by the AI. Observer mode watches every Master as AI.</p>
<p>At the beginning of a normal turn, the Hub shows the active Master, Resonance, remaining actions, active Ultimate, current strategy, and available commands.</p>
<ol>
<li>Use any desired manifestation that does not consume the action.</li>
<li>Select a target or activate an action-consuming Ultimate.</li>
<li>Resolve finding, conquest, interception, or a clash.</li>
<li>Watch the resulting scene and any chain reaction.</li>
<li>If actions remain, return to the Hub. Otherwise end the turn.</li>
</ol>
<p>After Caldwell's turn, the game enters Midnight Recap. Midnight can generate events, Mass Resonance, Kane rewards, and an Eclipse transition.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffcc00; font-weight:bold;">OPEN: ACTIONS AND FAILED ATTEMPTS</summary>
<div style="padding:12px; line-height:1.55;">
<p>Most Masters have <strong>one base action</strong>. Eclipse bonuses can add actions. Nathan also receives one extra action for every captured Master.</p>
<p>A normal successful conquest spends one action. A clash spends the attacker's action; the defender intercepts for free. Guarding, shadowing, shielding, cursing, and Pulse Scout spend Resonance but do not themselves consume the normal target action.</p>
<p>The game keeps a failure counter. A failed find or conquest does not necessarily end the action immediately. After repeated failure, the action is spent. If you have at least 10 Resonance, the result screen may let you spend it to force the connection.</p>
<p>Scenes shown because one action reached several tiers—such as an Apex Predation jump—are presentation only. They do not award extra actions or rerun conquest calculations.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff66cc; font-weight:bold;">OPEN: READING THE INTERFACE</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li><strong>Board:</strong> every Master, owned girl, stage, Key status, and enslavement status.</li>
<li><strong>Bios:</strong> roster information and current portraits.</li>
<li><strong>Actions:</strong> current action budget, not the number of scenes that may play.</li>
<li><strong>Resonance:</strong> the active Master's resource gauge, capped at 100.</li>
<li><strong>Strategy:</strong> the AI's current priority. Human players may ignore it.</li>
<li><strong>Clash Display:</strong> Short shows immediate videos; Full Scenes queues the complete character passages.</li>
</ul>
<p>Ending passages intentionally hide the normal sidebar because turn and target variables no longer apply there.</p>
</div>
</details>
<div style="text-align:center;">[[Tutorial Index|Tutorial]]</div><h1>2. Girls, Stages, Finding, and Conquest</h1>
<details style="border:1px solid #00ffcc; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">OPEN: STAGES AND OWNERSHIP</summary>
<div style="padding:12px; line-height:1.55;">
<p>Every girl has a separate stage track for Nathan, Josh, Jasper, and Caldwell:</p>
<ul>
<li><strong>Stage 0:</strong> no progress for that Vice.</li>
<li><strong>Stage 1:</strong> first influence scene.</li>
<li><strong>Stage 2:</strong> deeper influence scene.</li>
<li><strong>Stage 3:</strong> fully conquered and locked.</li>
</ul>
<p>At Stages 1–2, ownership usually belongs to the most recent successful Master and can change. Rival stage values are normally retained, so a stolen girl may still contain progress from several Vices.</p>
<p>Once any Vice reaches Stage 3, the girl is globally locked and cannot normally be targeted again. Some exceptional mechanics—such as elimination transfer, Eternal Anchor, Purge, or finale resolution—can alter otherwise locked states.</p>
<p>The scene played is based on the acting/winning Master's current stage. If a mechanic legitimately jumps over an unseen tier, the game can present the missing scenes in order without charging extra actions.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffcc00; font-weight:bold;">OPEN: FINDING A TARGET</summary>
<div style="padding:12px; line-height:1.55;">
<p>A selected target must first be found. Each normal action automatically makes up to three find attempts.</p>
<p>Base availability:</p>
<ul><li>Availability 1: 30% per attempt</li><li>Availability 2: 60% per attempt</li><li>Availability 3: 90% per attempt</li></ul>
<p>Important modifiers include:</p>
<ul>
<li>After Day 10: +15 percentage points.</li>
<li>Wary: −15 points.</li>
<li>Invested: +15 points.</li>
<li>Curious: ×1.5 when the acting Vice already owns someone.</li>
<li>Owned Socialite friend: +10 points.</li>
<li>Pulse Scout, Kane's marked girl, Static Void, and certain assignments can guarantee the find.</li>
<li>Captured Masters can provide their better availability and make their own Keys/Backups automatically findable.</li>
</ul>
<p>A shield normally prevents rivals from selecting the girl at all.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff66cc; font-weight:bold;">OPEN: THE CONQUEST ROLL</summary>
<div style="padding:12px; line-height:1.55;">
<p>After a successful find, the game rolls conquest. The basic chance is:</p>
<p style="text-align:center;"><strong>20% × the target's weakness multiplier for the acting Vice's weapon</strong></p>
<p>A weakness of 1 starts at 20%; 2 at 40%; 3 at 60%; 4 at 80%.</p>
<p>Notable modifiers:</p>
<ul>
<li>Owning three of your fixed Keys makes you Transcendent and guarantees conquest.</li>
<li>Invested: +15 points.</li>
<li>Owned Persuader friend: +10 points.</li>
<li>Halo Effect on a sufficiently influenced friend: +20 points for a Love attacker.</li>
<li>Unshakeable: −20 points for anyone other than the original imprinter.</li>
<li>Sentinel: −10 points when a rival attacks one of the owner's Keys.</li>
<li>Revenge Scent reduces the multiplier by 2 for the cursed Master's next attempt, with a floor of 1.</li>
<li>Captured Masters can lend their better weapon multiplier and guarantee their own Keys/Backups.</li>
</ul>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffaa00; font-weight:bold;">OPEN: PROTECTIVE INTERFERENCE</summary>
<div style="padding:12px; line-height:1.55;">
<p>Before the conquest roll, a non-locked friend with the <strong>Protective</strong> trait may step in for the intended target. The chance is 25% for each eligible protective friend checked. The protector becomes the actual target for the roll and scene.</p>
<p>This is separate from Nathan's Shield of Love, which is a Master interception that starts a clash.</p>
</div>
</details>
<div style="text-align:center;">[[Tutorial Index|Tutorial]]</div><h1>3. Resonance and Manifestations</h1>
<details style="border:1px solid #00ffcc; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">OPEN: GAINING AND SPENDING RESONANCE</summary>
<div style="padding:12px; line-height:1.55;">
<p>Resonance is the resource shown beneath each Master. It is normally capped at 100%.</p>
<ul>
<li>Normal conquest: usually +20.</li>
<li>Chain-reaction stage: +10.</li>
<li>Owning a Devotee: an additional +5 on every conquest.</li>
<li>Clash winner: +20.</li>
<li>Rest: pass your entire turn from the Hub for +30 (forfeits all remaining actions; the AI never rests).</li>
<li>Midnight events, Mass Resonance, Kane rewards, and Eclipse effects can add or remove more.</li>
</ul>
<p>Spending Resonance on a manifestation does not normally consume the standard target action, although some Ultimates are treated as the action when the AI activates them.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffcc00; font-weight:bold;">OPEN: 10–20% OPTIONS</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li><strong>Force Success — 10%:</strong> offered after a qualifying total find or conquest failure. A failed find is converted into a successful find, but the conquest roll still occurs; a failed conquest is forced through.</li>
<li><strong>Shadow Rival — 10%:</strong> wait to intercept the chosen rival's next eligible action and initiate a clash.</li>
<li><strong>Guard Domain — 20%:</strong> wait to intercept anyone targeting one of your fixed Keys or selected Spare Keys.</li>
</ul>
<p>Shadowing and Guarding replace any previous stance. They do not spend the normal action when selected.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff66cc; font-weight:bold;">OPEN: 50% OPTIONS</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li><strong>Vice Shield:</strong> protect one of your Stage 1–2 owned girls for three turn decrements. Fully conquered girls do not need it. Carnal Fever forces non-system shields to expire at turn end.</li>
<li><strong>Revenge Scent:</strong> curse an active rival. Their next conquest attempt loses 2 weakness-multiplier points, to a minimum of 1.</li>
<li><strong>Pulse Scout:</strong> your next find automatically succeeds and consumes the scout effect.</li>
</ul>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff0000; font-weight:bold;">OPEN: 100% ULTIMATE</summary>
<div style="padding:12px; line-height:1.55;">
<p>At 100 Resonance, your Vice can activate its Ultimate. Activation sets the gauge to zero. Ultimates are explained in the next chapter.</p>
<p>AI Masters normally consider Ultimate activation before ordinary targeting, but immediate elimination opportunities and Kane priorities can override that behavior.</p>
<p>[[Read the four Ultimates|Tutorial_Ultimates]]</p>
</div>
</details>
<div style="text-align:center;">[[Tutorial Index|Tutorial]]</div><h1>4. The Four Ultimates</h1>
<details style="border:1px solid #00ffcc; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">OPEN: NATHAN — SOCIAL PANDEMIC</summary>
<div style="padding:12px; line-height:1.55;">
<p>Duration: three of Nathan's turn decrements. Every successful Nathan conquest forces a chain reaction if an eligible social friend exists. It also bypasses the Static Void's normal chain prohibition.</p>
<p>If Josh's Predator's Rush is simultaneously targeting Nathan, a successful conquest with an eligible friend creates a special two-girl clash. Nathan and Josh contest both girls; the winner advances both.</p>
</div>
</details>
<details style="border:1px solid #ff33cc; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff33cc; font-weight:bold;">OPEN: JOSH — PREDATOR'S RUSH</summary>
<div style="padding:12px; line-height:1.55;">
<p>Josh marks Nathan, Jasper, or Caldwell for two of that rival's turns. When the marked rival successfully advances an eligible girl, Josh steals the success:</p>
<ul>
<li>Josh gains the stage and ownership.</li>
<li>The acting rival does not gain that stage.</li>
<li>Josh's scene replaces the rival's scene.</li>
<li>If a chain is generated, Josh steals the chain as well.</li>
<li>Each girl can be mirrored only once during that activation.</li>
</ul>
<p>Social Pandemic can turn this silent theft into the special two-girl clash described above.</p>
</div>
<li>Re-marking the rival from the previous hunt lasts one of their turns instead of two.</li>
</details>
<details style="border:1px solid #ffff00; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffff00; font-weight:bold;">OPEN: JASPER — ECLIPSE SILENCE</summary>
<div style="padding:12px; line-height:1.55;">
<p>Jasper selects an active rival and suppresses that rival for a randomly determined one or two turns. A silenced Master cannot perform the normal action while the timer remains.</p>
<p>Jasper cannot activate another silence while one of his previous silences is still active.</p>
</div>
<li>Re-silencing the rival from the previous activation holds for one turn instead of two.</li>
</details>
<details style="border:1px solid #ff0066; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff0066; font-weight:bold;">OPEN: CALDWELL — ETERNAL ANCHOR</summary>
<div style="padding:12px; line-height:1.55;">
<p>Caldwell selects a girl with a Nathan, Josh, or Jasper stage of 2 or higher. The girl claimed as the current Kane reward is excluded.</p>
<ul>
<li>Caldwell gains one stage, capped at 3, and takes ownership.</li>
<li>Every rival holding progress always loses one stage, with a 50% chance of losing a second.</li>
<li>Caldwell gains +20 Resonance.</li>
<li>After an anchor, the casting day plus one further full day must pass before it can be cast again.</li>
<li>A girl who has ever been a Kane quest target can never be anchored (Kane's Mark is permanent); the current reward girl is protected until her reward is resolved.</li>
<li>With an enslaved Vice, Caldwell may channel that Vice's ultimate (Predator's Rush, Eclipse Silence, or Social Pandemic) instead of the Anchor. Every cast — anchor or channel — shares the same recharge.</li>
</ul>
<p>The Ultimate consumes the action through the Anchor execution. It does not also perform a second ordinary conquest.</p>
</div>
</details>
<details style="border:1px solid #ffaa00; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffaa00; font-weight:bold;">OPEN: JOSH ECLIPSE EVENT — APEX PREDATION</summary>
<div style="padding:12px; line-height:1.55;">
<p>Apex Predation is an Eclipse event, not Josh's Ultimate. Once per day, when a rival successfully targets a girl, Josh can steal the conquest out from under them: the rival's stage gain is cancelled, Josh rises one stage on his own track, and ownership and the scene go to Josh.</p>
<p>Example: Rae has Caldwell Stage 2 and Josh Stage 1. Caldwell's conquest succeeds and Josh steals it — Caldwell stays at Stage 2, Josh rises to Stage 2 and takes ownership; the Josh/Rae Level 2 scene plays. The ambushed master may pay 40% Resonance to shield the attempt: the conquest is aborted and the action is refunded. Josh rarely strikes the same master two days running.</p>
</div>
</details>
<div style="text-align:center;">[[Tutorial Index|Tutorial]]</div><h1>5. Shadowing, Guarding, and Clashes</h1>
<details style="border:1px solid #00ffcc; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">OPEN: STARTING A CLASH</summary>
<div style="padding:12px; line-height:1.55;">
<p>A clash occurs when an eligible Master intercepts another Master's target action.</p>
<ul>
<li><strong>Shadow Rival:</strong> intercept the chosen rival's next eligible target.</li>
<li><strong>Guard Domain:</strong> intercept a target belonging to your Key or Spare lists.</li>
<li><strong>Nathan's Shield of Love:</strong> after Nathan captures at least one Master, attacks on Nathan-owned Keys may trigger a clash automatically.</li>
<li><strong>Social Pandemic vs Predator's Rush:</strong> may create a special two-girl clash.</li>
</ul>
<p>Pulse Scout bypasses ordinary ambushers for that action.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffcc00; font-weight:bold;">OPEN: CLASH SCORE AND RESULT</summary>
<div style="padding:12px; line-height:1.55;">
<p>Each participant rolls:</p>
<p style="text-align:center;"><strong>Target weakness to that Master's weapon + 1d10 + clash bonus</strong></p>
<p>The higher score wins; ties go to the original attacker. The winner gains one stage with the contested girl (ownership only on a full conquest), gains +20 Resonance, and may trigger Kane completion if appropriate.</p>
<p>Only the attacker spends an action. A defending Master intercepts for free. Jasper receives +5 clash score if he owns at least one captured Master.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff0000; font-weight:bold;">OPEN: CRUSHING DEFEAT</summary>
<div style="padding:12px; line-height:1.55;">
<p>If the winning score exceeds the losing score by at least five, the winner may also steal one eligible partially influenced girl from the loser. She gains one winner stage (ownership changes only on a full conquest).</p>
<p>If Jasper has at least one captured Master, he has a 40% chance to steal a second eligible girl.</p>
<p>Nathan's automatic Shield of Love interception protects Nathan from the Crushing Defeat penalty when Nathan is the losing defender.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff66cc; font-weight:bold;">OPEN: SHORT VS FULL SCENES</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li><strong>Short:</strong> the clash page immediately shows the relevant stage videos.</li>
<li><strong>Full Scenes:</strong> the game queues the complete character passages for the contested girl, second clash girl, and Crushing Defeat thefts.</li>
</ul>
<p>A multi-scene queue still represents one clash action. Its saved action count is restored after the final scene, so intermediate Return to Hub links cannot grant free actions.</p>
</div>
</details>
<div style="text-align:center;">[[Tutorial Index|Tutorial]]</div><h1>6. Keys, Elimination, and Captured Masters</h1>
<details style="border:1px solid #00ffcc; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">OPEN: FIXED KEYS AND SPARE KEYS</summary>
<div style="padding:12px; line-height:1.55;">
<p>Each Vice has four fixed Keys. At the beginning of each run, five Spare Keys are also selected from that Vice's separate nine-girl pool. Spare pools can overlap between Vices.</p>
<p>Keys matter for guarding, elimination score, AI priorities, inheritance after capturing a Master, and Transcendence. Fully owning three fixed Keys makes that Vice Transcendent, causing normal conquest rolls to succeed automatically.</p>
<p>The Board identifies current Key and Spare assignments.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffcc00; font-weight:bold;">OPEN: ELIMINATING A MASTER</summary>
<div style="padding:12px; line-height:1.55;">
<p>A rival becomes vulnerable two ways: <strong>auto-victory</strong> — you personally hold <strong>three or more of his Main Keys</strong> fully conquered (regardless of anything else); or <strong>score victory</strong> — with fewer than three of his Main Keys, your elimination score against him must reach <strong>8</strong> (<strong>7</strong> when you are Jasper) (a fully conquered Main Key is worth 2, a Spare Key 1). In both cases every one of his Main Keys must also be fully conquered by <em>someone</em> (the exposure condition). When vulnerability is reached, targeting resolves as a Master elimination rather than an ordinary girl action.</p>
<p>On elimination:</p>
<ul>
<li>The defeated Master stops receiving turns and becomes the winner's slave.</li>
<li>All girls fully conquered by the defeated Master transfer to the winner at Stage 3.</li>
<li>If the defeated Master already had slaves, the Rite of Passage transfers those slaves to the new winner.</li>
</ul>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff66cc; font-weight:bold;">OPEN: BENEFITS EVERY CAPTOR RECEIVES</summary>
<div style="padding:12px; line-height:1.55;">
<p>Every captured Master becomes a passive stat package:</p>
<ul>
<li>The slave's fixed Keys and selected Spare Keys are automatically found and conquered by the captor.</li>
<li>For all other girls, the captor uses the best availability among himself and his slaves.</li>
<li>The captor also uses the best weakness multiplier available through his own weapon or any slave's weapon.</li>
</ul>
<p>If a captor is later eliminated, the chain of enslaved Masters passes to the new winner.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffaa00; font-weight:bold;">OPEN: UNIQUE SLAVE BENEFITS</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li><strong>Nathan:</strong> +1 action per captured Master. Having at least one also unlocks Shield of Love: 40% interception on Nathan-owned fixed Keys and 25% on Nathan-owned Spare Keys.</li>
<li><strong>Josh:</strong> having at least one slave doubles his final conquest multiplier. His Mass Resonance may showcase one slave's former Key/Spare circle.</li>
<li><strong>Jasper:</strong> having at least one slave gives +5 clash score and a 40% chance to take a second girl on Crushing Defeat.</li>
<li><strong>Caldwell:</strong> slaves supervise his special Mass Resonance. Individual group videos may use a random slave's clips instead of Caldwell's.</li>
</ul>
<p>These “having at least one” bonuses do not stack with additional slaves unless the description explicitly says “per captured Master.”</p>
</div>
</details>
<div style="text-align:center;">[[Tutorial Index|Tutorial]]</div><h1>7. Midnight Events and Mass Resonance</h1>
<details style="border:1px solid #00ffcc; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">OPEN: WHAT MIDNIGHT DOES</summary>
<div style="padding:12px; line-height:1.55;">
<p>After the final active turn of the day, Midnight Recap clears temporary daily effects, resets extra-action budgets, advances timers and assignments, generates two or three valid events, resolves Kane outcomes, and advances the day.</p>
<p>From Day 15 onward, untouched girls may become Jaded. From Day 20 onward, eligible untouched girls may become Wary. These traits make late untouched targets harder to reach.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffcc00; font-weight:bold;">OPEN: MIDNIGHT EVENT LIST</summary>
<div style="padding:12px; line-height:1.55;">
<ol>
<li><strong>Rival Taunt:</strong> one active rival mocks another with a current-tier photo and creates a revenge priority.</li>
<li><strong>Rumors:</strong> creates a temporary boosted find opportunity.</li>
<li><strong>Devotion:</strong> an owned girl sends a file; +5 Resonance.</li>
<li><strong>Recommendation:</strong> a Stage 2+ owned girl points toward a social friend, increasing AI interest.</li>
<li><strong>Friction:</strong> an active Master becomes strongly interested in a random girl.</li>
<li><strong>Mandatory Detention:</strong> marks a student as automatically findable by Caldwell.</li>
<li><strong>Offline:</strong> a random unshielded girl becomes temporarily unreachable.</li>
<li><strong>Omen:</strong> grants a temporary conquest multiplier bonus for one Master/girl pair.</li>
<li><strong>Resonance Peak:</strong> +10 Resonance.</li>
<li><strong>Drain:</strong> −5 Resonance.</li>
<li><strong>Group Assignment:</strong> two students become automatically findable by one Master for a limited period.</li>
<li><strong>Mass Resonance:</strong> gathers owned girls into a collective event and awards Resonance.</li>
</ol>
<p>Events that cannot produce a valid result are skipped and another event is attempted.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff00ff; font-weight:bold;">OPEN: MASS RESONANCE</summary>
<div style="padding:12px; line-height:1.55;">
<p>Mass Resonance requires at least two owned girls at Stage 1 or higher. It normally selects up to eight eligible participants and grants <strong>+10 Resonance per participant</strong>.</p>
<p>If the Master fully owns every member of a defined social group, there is a 20% chance to use that complete group plus up to four other owned girls. Full-group events add another +10.</p>
<p>Slave variations:</p>
<ul>
<li>Josh may gather girls connected to one captured Master's former Keys and Spares.</li>
<li>Caldwell may place all captured Masters in supervision; his video wall may substitute their clips.</li>
</ul>
<p>Masters with slaves add extra Mass Resonance entries to the global midnight event pool, making the event type more common.</p>
</div>
</details>
<div style="text-align:center;">[[Tutorial Index|Tutorial]]</div><h1>8. Eclipse Themes and Events</h1>
<details style="border:1px solid #00ffcc; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">OPEN: HOW AN ECLIPSE IS BUILT</summary>
<div style="padding:12px; line-height:1.55;">
<p>At the scheduled Eclipse transition, the game selects:</p>
<ol><li>one global <strong>theme</strong> affecting normal mechanics;</li><li>one scripted <strong>Eclipse event</strong>.</li></ol>
<p>Master-specific events are only included if that Master remains active. The first Eclipse also unlocks the possibility of later Kane challenges.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffcc00; font-weight:bold;">OPEN: THE FOUR THEMES</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li><strong>Crimson Fever:</strong> every positive Resonance gain processed by the gauge system is doubled.</li>
<li><strong>Static Void:</strong> all finds automatically succeed, but ordinary chain reactions are disabled. Nathan's Social Pandemic bypasses the chain prohibition.</li>
<li><strong>Carnal Fever:</strong> Lust attacks receive +2 weakness multiplier, capped at 5; Josh automatically finds student targets; non-system shields expire at turn end.</li>
<li><strong>Serene Collective:</strong> up to three of Jasper's owned girls (Keys and Spares first) receive three-turn shields and Jasper gains +10 conquest chance.</li>
</ul>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff66cc; font-weight:bold;">OPEN: MASTER-SPECIFIC ECLIPSE EVENTS</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li><strong>Directorate Mandate — Caldwell:</strong> Caldwell automatically finds every student target.</li>
<li><strong>Empathic Web — Nathan:</strong> if Nathan targets a friend of a girl he fully owns, his weakness multiplier receives +3.</li>
<li><strong>Apex Predation — Josh:</strong> once per day, when a rival successfully targets a girl, Josh can steal the conquest: the rival's stage gain is cancelled and Josh rises one stage on his own track, taking ownership. The victim may pay 40% Resonance to shield the attempt (conquest aborted, action refunded).</li>
<li><strong>Havenwood Bastion — Jasper:</strong> three selected girls cannot be located by other Masters during the event.</li>
</ul>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffaa00; font-weight:bold;">OPEN: GENERAL ECLIPSE EVENTS</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li><strong>Administrative Overdrive:</strong> every active Master gains one extra action.</li>
<li><strong>Great Purge:</strong> a Master with at least five fully conquered, owner-matched girls loses one of those fully conquered girls; all her stages reset.</li>
<li><strong>Scapegoat:</strong> one Master loses all owner-matched Stage-1 holdings but gains two extra actions.</li>
<li><strong>Director's Pet:</strong> the active Master with the largest owned roster gains two extra actions.</li>
<li><strong>Resonance Surge:</strong> every active Master is set to 100 Resonance.</li>
</ul>
</div>
</details>
<div style="text-align:center;">[[Tutorial Index|Tutorial]]</div><h1>9. Kane's Challenge</h1>
<details style="border:1px solid #ffcc00; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffcc00; font-weight:bold;">OPEN: STARTING AND WINNING THE RACE</summary>
<div style="padding:12px; line-height:1.55;">
<p>After the first Eclipse, Kane may issue a challenge on a later eligible Eclipse interval. The target must be completely untouched: no owner and Stage 0 for every Vice.</p>
<p>The challenge lasts through its deadline. The first Vice to bring the marked girl to Stage 3 wins. The marked girl is automatically findable, and AI strategy treats the race as a high priority unless survival or an immediate Master elimination is more urgent.</p>
<p>A conquest or a clash can complete the race.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">OPEN: THE REWARD</summary>
<div style="padding:12px; line-height:1.55;">
<p>The winner receives:</p>
<ul>
<li>one stage on an eligible girl of the winner's choice;</li>
<li>ownership of that reward girl;</li>
<li>Resonance set to 100%.</li>
</ul>
<p>The reward girl must be below global Stage 3 and below Stage 3 for the winner. A girl awarded through Kane cannot be selected by Caldwell's Eternal Anchor until her reward is resolved — and a girl who has ever been a Kane quest target can never be anchored at all.</p>
<p>CPU winners choose automatically, favoring high weakness to their weapon. Their reward scene can be watched from Midnight Recap.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff66cc; font-weight:bold;">OPEN: HUMAN REWARD SAFETY</summary>
<div style="padding:12px; line-height:1.55;">
<p>If the human player wins and eligible reward girls exist, Midnight Recap blocks the next-day route until the reward page is entered and a choice is made.</p>
<p>If no girl can receive the bonus stage, the game sets the player's Resonance to 100%, marks the reward claimed, and continues without trapping the player.</p>
<p>The reward scene is outside normal turn order. Watching it does not consume a new day's action or advance the wrong Master.</p>
</div>
</details>
<div style="text-align:center;">[[Tutorial Index|Tutorial]]</div><h1>10. Social Links, Groups, Traits, and Perks</h1>
<details style="border:1px solid #00ffcc; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">OPEN: SOCIAL LINKS AND CHAINS</summary>
<div style="padding:12px; line-height:1.55;">
<p>Each girl has a defined social network. After a successful conquest, the game may select an eligible friend for a chain reaction. A chain automatically grants one stage to the same effective Master and gives +10 Resonance.</p>
<p>Base chain chance depends on the newly reached stage: approximately 8% at Stage 1, 18% at Stage 2, and 30% at Stage 3. Social Pillar can add 10 points at Stage 2+, and an influenced Confidante friend can add another 10. Social Pandemic forces the chance to 100%.</p>
<p>Empty Vessel and globally locked girls cannot be ordinary chain targets. Jaded girls are excluded unless Social Pandemic is active. Shameless can produce one additional socially directed chain per Vice turn.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffcc00; font-weight:bold;">OPEN: DEFINED GROUPS</summary>
<div style="padding:12px; line-height:1.55;">
<p>The roster contains overlapping named groups such as family circles, friend groups, staff groups, social groups, and societies. Groups primarily affect Mass Resonance.</p>
<p>If one Master owns every member of a group at Stage 3, Mass Resonance has a chance to become a <strong>Group Completion</strong> event. It includes the full group, can add up to four other owned girls, and grants an additional +10 Resonance.</p>
<p>A girl may belong to more than one group. Group membership does not itself lock ownership or guarantee a chain.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff66cc; font-weight:bold;">OPEN: FIXED GIRL PERKS</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li><strong>Devotee:</strong> her Master gains +5 Resonance on every conquest.</li>
<li><strong>Socialite:</strong> her friends under her Master's influence receive +10 find chance.</li>
<li><strong>Confidante:</strong> chains originating from her friends receive +10 chance.</li>
<li><strong>Persuader:</strong> her friends under her Master's influence receive +10 conquest chance.</li>
<li><strong>Sentinel:</strong> rivals suffer −10 when attempting to take her Master's Key girls.</li>
</ul>
<p>Perks belong to the girl, but most effects require that she currently be under the benefiting Master's influence (Stage 1 or higher). The AI gives extra target weight to valuable perks and social synergy.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffaa00; font-weight:bold;">OPEN: IMPRINT TRAITS AND LATE-GAME TRAITS</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li><strong>Halo Effect — Nathan imprint:</strong> helps Love attacks through social friends.</li>
<li><strong>Shameless — Josh imprint:</strong> can spread an additional socially directed chain.</li>
<li><strong>Unshakeable — Jasper imprint:</strong> gives non-imprinters a −20 conquest penalty.</li>
<li><strong>Empty Vessel — Caldwell imprint:</strong> prevents ordinary chain targeting.</li>
<li><strong>Wary:</strong> harder to find; becomes Invested when first successfully influenced.</li>
<li><strong>Invested:</strong> +15 find and +15 conquest.</li>
<li><strong>Jaded:</strong> permanently lowers availability and blocks ordinary chain targeting.</li>
<li><strong>Protective:</strong> may step in for a social friend and become the actual target.</li>
</ul>
<p>The imprint is set only if the girl has never been imprinted before; later ownership changes do not normally replace it.</p>
</div>
</details>
<div style="text-align:center;">[[Tutorial Index|Tutorial]]</div><h1>11. Victory Conditions and Practical Strategy</h1>
<details style="border:1px solid #00ffcc; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#00ffcc; font-weight:bold;">OPEN: HOW THE GAME ENDS</summary>
<div style="padding:12px; line-height:1.55;">
<p>The game checks victory at turn transitions.</p>
<ul>
<li><strong>Sole survivor:</strong> only one active Master remains. Any unconquered girls enter Final Harvest and are forced to Stage 3 for the winner before the ending review.</li>
<li><strong>Total conquest:</strong> every girl in the current roster has reached Stage 3 under someone. The winner is the active Master who currently owns the most girls.</li>
</ul>
<p>The total-conquest requirement uses the current roster length. Removed or future-placeholder girls are not counted unless they actually exist in the roster.</p>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffcc00; font-weight:bold;">OPEN: EARLY-GAME PRIORITIES</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li>Take reliable high-availability targets to start generating Resonance.</li>
<li>Do not ignore your fixed Keys. Owning three at Stage 3 grants automatic conquest.</li>
<li>Look for Devotees and social-perk combinations that accelerate future turns.</li>
<li>Use Pulse Scout on a difficult high-value target rather than an already easy find.</li>
<li>Guarding is strongest when a rival is clearly attacking your Key network; shadowing is strongest when you expect a high-value theft opportunity.</li>
</ul>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ff66cc; font-weight:bold;">OPEN: MID- AND LATE-GAME PRIORITIES</summary>
<div style="padding:12px; line-height:1.55;">
<ul>
<li>Check the Board for rivals approaching elimination score against you.</li>
<li>Captured Masters provide enormous probability and Key-access advantages. Eliminating one rival may be worth more than claiming several unrelated girls.</li>
<li>Track girls at Stage 2. One success can permanently lock them and deny every rival.</li>
<li>During Kane's race, survival and immediate elimination may still be more important than the marked girl.</li>
<li>Adapt to Eclipse effects. Static Void favors difficult finds; Carnal Fever rewards Lust; Serene Collective protects Jasper; Apex Predation rewards Josh for stealing advanced rival targets.</li>
<li>If total conquest is close, ownership count determines the winner. Stealing contested Stage 1–2 girls can matter as much as completing a new girl.</li>
</ul>
</div>
</details>
<details style="border:1px solid #444; background:#111; padding:12px; margin:12px 0; border-radius:8px;">
<summary style="cursor:pointer; color:#ffaa00; font-weight:bold;">OPEN: UNDERSTANDING THE AI</summary>
<div style="padding:12px; line-height:1.55;">
<p>AI priority is broadly:</p>
<ol>
<li>Survive an immediate elimination threat.</li>
<li>Eliminate a vulnerable rival immediately.</li>
<li>Pursue Kane's marked girl.</li>
<li>Resolve grudges or revenge.</li>
<li>Follow personality-weighted expansion, consolidation, fortification, hunting, observation, or discord.</li>
</ol>
<p>AI target pools are then weighted by Keys, owner, strategy, perks, social synergy, sentinels, devotees, spite targets, and available mechanics. Randomness remains, so the AI is purposeful but not perfectly predictable.</p>
</div>
</details>
<div style="text-align:center;">[[Tutorial Index|Tutorial]]</div><<silently>>
/* Presentation-only queue for an Apex Predation stage jump.
The conquest was already calculated exactly once in
gaugeSpendSuccess. This passage never awards a stage, gauge,
ownership, chain chance, Kane progress, or another action. */
<<set _apexValid to ($apexSceneQueue and $apexSceneQueue.length gt 0 and $apexSceneNpcId and $apexScenePassage)>>
<<if _apexValid>>
<<set _apexIdx to $roster.findIndex(c => c.id === $apexSceneNpcId)>>
<<if _apexIdx gte 0>>
<<set _displayStage to $apexSceneQueue.shift()>>
<<set _moreApexScenes to $apexSceneQueue.length gt 0>>
<<set _apexScene to $apexScenePassage>>
/* Save the real action/chain state once, before the first
presentation tier temporarily changes footer routing. */
<<if $apexSavedActions === null or $apexSavedActions === undefined>>
<<set $apexSavedActions to $actionsTaken>>
<<set $apexSavedChainTarget to $chainTarget>>
<</if>>
/* Render from a detached display copy. The authoritative roster
remains at the one final stage already calculated by Apex;
even a save made during Level 1 cannot lower real progress. */
<<set _apexDisplayNPC to JSON.parse(JSON.stringify($roster[_apexIdx]))>>
<<set _apexDisplayNPC.stages.josh to _displayStage>>
<<set $targetNPC to _apexDisplayNPC>>
<<set $sceneMasterOverride to null>>
<<if _moreApexScenes>>
/* Hide the already-generated chain and force the normal
scene footer through Hub, where the queue is intercepted. */
<<set $chainTarget to null>>
<<set $actionsTaken to 0>>
<<else>>
/* Last tier: restore the real final stage and the exact
action/chain state from the single conquest. The normal
footer now handles chain, extra actions, or end turn once. */
/* The roster never left its final Apex stage; switch the
scene reference back from the display copy to that object. */
<<set $targetNPC to $roster[_apexIdx]>>
<<set $actionsTaken to $apexSavedActions>>
<<set $chainTarget to $apexSavedChainTarget>>
<<set $apexSceneFinalStage to null>>
<<set $apexScenePassage to null>>
<<set $apexSceneNpcId to null>>
<<set $apexSavedActions to null>>
<<set $apexSavedChainTarget to null>>
<</if>>
<<goto _apexScene>>
<<else>>
/* Corrupt/legacy safety: restore routing without replaying
any conquest calculation. */
<<if $apexSavedActions !== null and $apexSavedActions !== undefined>>
<<set $actionsTaken to $apexSavedActions>>
<<set $chainTarget to $apexSavedChainTarget>>
<</if>>
<<set $apexSceneQueue to []>>
<<set $apexSceneFinalStage to null>>
<<set $apexScenePassage to null>>
<<set $apexSceneNpcId to null>>
<<set $apexSavedActions to null>>
<<set $apexSavedChainTarget to null>>
<<goto "Hub">>
<</if>>
<<else>>
<<goto "Hub">>
<</if>>
<</silently>><h1 style="text-align:center; color:#ffcc66; letter-spacing:2px;">CHOOSE A VICE</h1>
<p style="text-align:center; color:#aaa;">The four awakenings occurred together. The story now follows one of them.</p>
<div class="narrative">
<img src="img/Player/Maxwell.jpg">
<<speech "Maxwell">> "Love. Lust. Trust. Will." <</speech>> Kane's voice offered no explanation for the registry that had closed around them. <<speech "Maxwell">> "Choose the desire you intend to understand." <</speech>>
<hr>
<div class="vice-grid" style="display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:14px; align-items:stretch;">
<div style="border:1px solid #00aa99; padding:12px; background:rgba(0,255,204,0.04);">
<h2 style="color:#00ffcc; text-align:center; margin:0 0 10px 0;">NATHAN — LOVE</h2>
<img src="img/Player/Nathan.jpg" style="width:100%; aspect-ratio:2/3; object-fit:cover; object-position:top center; margin:0 0 10px 0; border-radius:6px;">
<p>Nathan intensifies existing affection and builds strength through relationships, social bonds, and emotional chains.</p>
<p><strong>Style:</strong> relationship-focused, persuasive, and highly connected.</p>
<div style="text-align:center;">[[Follow Nathan|NathanPrologue]]</div>
</div>
<div style="border:1px solid #aa2222; padding:12px; background:rgba(255,51,51,0.04);">
<h2 style="color:#ff3333; text-align:center; margin:0 0 10px 0;">JOSH — LUST</h2>
<img src="img/Player/Josh.jpg" style="width:100%; aspect-ratio:2/3; object-fit:cover; object-position:top center; margin:0 0 10px 0; border-radius:6px;">
<p>Josh turns anger and sustained eye contact into overwhelming physical need that can break resistance through the body.</p>
<p><strong>Style:</strong> aggressive, volatile, and physically destructive.</p>
<div style="text-align:center;">[[Follow Josh|JoshPrologue]]</div>
</div>
<div style="border:1px solid #aa8800; padding:12px; background:rgba(255,204,0,0.04);">
<h2 style="color:#ffcc00; text-align:center; margin:0 0 10px 0;">JASPER — TRUST</h2>
<img src="img/Player/Jasper.jpg" style="width:100%; aspect-ratio:2/3; object-fit:cover; object-position:top center; margin:0 0 10px 0; border-radius:6px;">
<p>Jasper carries Trust through Thornfield's essence, making safety, familiarity, and belonging increasingly difficult to resist.</p>
<p><strong>Style:</strong> gradual, defensive, and centered on loyalty.</p>
<div style="text-align:center;">[[Follow Jasper|JasperPrologue]]</div>
</div>
<div style="border:1px solid #7744aa; padding:12px; background:rgba(187,102,255,0.04);">
<h2 style="color:#bb66ff; text-align:center; margin:0 0 10px 0;">CALDWELL — WILL</h2>
<img src="img/Player/Caldwell.jpg" style="width:100%; aspect-ratio:2/3; object-fit:cover; object-position:top center; margin:0 0 10px 0; border-radius:6px;">
<p>Caldwell channels Will through audiovisual conditioning, eroding resistance through controlled exposure and precision.</p>
<p><strong>Style:</strong> methodical, controlling, and strategically technical.</p>
<div style="text-align:center;">[[Follow Professor Caldwell|CaldwellPrologue]]</div>
</div>
</div>
<hr>
<div style="text-align:center; margin-top:20px;">
<<link "JUST OBSERVE — FOLLOW KANE'S PERSPECTIVE">>
<<set $playerID to "observer">>
<<goto "ObserverPrologue">>
<</link>>
</div>
</div><<set $playerID to "observer">>
<h1 style="text-align:center; color:#d8d8d8; text-shadow:0 0 10px #888; letter-spacing:2px;">KANE — THE OBSERVER</h1>
<p style="text-align:center; color:#888;">Four signatures beneath a lingering shadow</p>
<div class="narrative">
<h2 style="color:#d8d8d8;">Kane's Study</h2>
Director Maxwell Kane entered his private study before the visible eclipse had fully released Eldridge Hollow.
<img src="img/Player/Maxwell.jpg">
A white crescent widened beyond the windows. Streetlights switched themselves off across campus. Students cheered at the returning sun, already converting totality into photographs, messages, and stories they would repeat for years.
None of them understood that the eclipse had not ended where it mattered.
Kane locked the study door.
Four registry instruments occupied the long table beneath the windows. He had placed them weeks earlier without labels. Each now carried a different color: warm cyan, violent red, enclosed gold, and disciplined violet.
The visible shadow would pass in minutes. Its supernatural imprint would remain over the university until the race reached its conclusion. Before that lingering eclipse ended, one of the four awakened Masters would establish dominion over Eldridge Hollow—or be replaced by the man who took what he had built.
Kane had not selected a player.
He had selected a vantage point.
He would allow all four Masters to act according to their own motives. He would watch their target choices, their victories, their errors, and the ways each man renamed control when forced to live with it. He would mark opportunities and introduce pressure when the board became complacent, but he would not choose a target on any Master's behalf.
That was the distinction between participation and observation.
It was not the same as innocence.
<h2 style="color:#00ffcc;">Nathan — Love</h2>
The cyan instrument warmed beneath Kane's fingers.
<img src="img/Player/Nathan.jpg">
Nathan's signature spread through existing relationships rather than striking outward. Affection gave it routes: romance, friendship, family, admiration, gratitude, and every softer feeling people preferred to believe could not become coercive.
Kane had known Nathan's father. He had watched the son inherit the same patience and social ease, then mistake those qualities for evidence that connection was inherently moral.
Love would tempt Nathan with harmony. He could soften hostility, deepen attraction, and make agreement feel like intimacy. If he succeeded, the university might appear kinder under his dominion. People would choose his priorities eagerly and call the pleasure of obeying proof that nothing had been taken from them.
Nathan would be slow to accept the word *conquest*.
Kane expected him to become dangerous when he no longer needed it.
<h2 style="color:#ff3333;">Josh — Lust</h2>
The red instrument struck twice against its housing like an impatient pulse.
<img src="img/Player/Josh.jpg">
Josh's power would never be subtle in its first impact. Anger, eye contact, heat, sensitivity, contraction, and physical need left little room for moral euphemism. The body would become the argument, and Josh would enjoy winning it.
That visibility made him easier to condemn and harder to ignore.
Kane had read enough reports to know Josh's anger was not random. He kept score. Attention, status, forgiveness, attraction—he noticed who received each without effort and experienced every imbalance as judgment. Lust gave him a way to reverse those hierarchies in public flesh.
Josh might burn through valuable people simply to prove he could affect them.
He might also understand the race more honestly than the others. Dominion appealed to him precisely because it admitted somebody would win and somebody would be made to lose.
Kane expected his greatest threat and his greatest weakness to arrive from the same place: Josh would feel most powerful at the exact moment anger made him easiest to manipulate.
<h2 style="color:#ffcc00;">Jasper — Trust</h2>
The gold instrument unfolded into the outline of a doorway.
<img src="img/Player/Jasper.jpg">
Jasper would build rather than strike. The essence gave safety a scent, familiarity weight, and belonging the authority of certainty. Each use could make another person experience reliance as relief and obedience as the natural behavior of family.
Kane considered Havenwood the ideal beginning for such a domain. It already possessed rituals, shared labor, old rooms, returning residents, and the language of chosen connection. Jasper would not need to invent a structure. He would only need to make every bond inside it more difficult to question.
His fear was not humiliation or disorder. It was loss.
Trust would let him answer that fear by creating a family no rival could easily divide. If he remained careful, people would approach him voluntarily. If he became afraid, every open invitation could become a locked definition of where somebody belonged.
Kane expected Jasper to call his dominion a home long after it became a border.
<h2 style="color:#bb66ff;">Caldwell — Will</h2>
The violet instrument divided itself into a measured grid.
<img src="img/Player/Caldwell.jpg">
Caldwell would begin with variables.
Exposure length. Frequency. Suggestibility. Recall. Trigger stability. Public function after conditioning. Rival interference.
Kane knew the professor would treat the supernatural as an improvement to ordinary technology rather than a revelation. That response made him predictable for the first several tests and increasingly dangerous after them. Caldwell did not need affection, rage, or family to justify control. He considered the efficient direction of weaker wills a sufficient argument by itself.
Will could preserve intelligence while replacing priority. A subject might continue working, leading, teaching, and smiling while every important decision served Caldwell beneath the surface.
Of the four, he was the most likely to identify the registry as a system.
He was also the most likely to ask who had designed it.
Kane kept his hand away from the locked drawer containing the original records.
<h2 style="color:#d8d8d8;">The Board Without a Player</h2>
All four instruments activated together.
Kane's registry displayed the current fixed Main Keys and the five Spare Keys assigned to each Master for this run. The Spare selections would change in another contest; these were the relationships the lingering eclipse had made strategically important now.
<<set _observerMasterOrder to ["nathan", "josh", "jasper", "caldwell"]>>
<<set _observerColors to { nathan: "#00ffcc", josh: "#ff3333", jasper: "#ffcc00", caldwell: "#bb66ff" }>>
<div style="display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:14px; margin:18px 0;">
<<for _masterID range _observerMasterOrder>>
<<set _masterData to $vices[_masterID]>>
<<set _mainNames to _masterData.keys.map(id => $roster.find(c => c.id === id)).filter(g => g).map(g => g.name)>>
<<set _spareNames to _masterData.backups.map(id => $roster.find(c => c.id === id)).filter(g => g).map(g => g.name)>>
<div @style="'background:#101010; border:1px solid ' + _observerColors[_masterID] + '; border-radius:8px; padding:13px;'">
<h3 @style="'color:' + _observerColors[_masterID] + '; margin:0 0 9px 0; text-transform:uppercase;'"><<print _masterData.name>> — <<print _masterData.weapon>></h3>
<p style="margin:0 0 8px 0;"><strong>Main Keys:</strong> <<print _mainNames.join(", ")>></p>
<p style="margin:0;"><strong>Spare Keys this run:</strong> <<print _spareNames.join(", ")>></p>
</div>
<</for>>
</div>
Kane reviewed the names without mistaking the display for destiny. Keys created leverage. Spares created opportunities. Neither guaranteed that a Master would recognize value before a rival did.
The first turn belonged to Nathan. After him would come Josh, Jasper, and Caldwell. Each would choose through his own priorities. Each would respond to losses, threats, and temptation without a human hand correcting the decision.
Kane would watch all four.
He would see strategies form, domains collide, Keys change ownership, and Masters discover whether their defining desire remained recognizable after power amplified it beyond restraint.
The final instrument projected the black sun across his desk.
Four colors entered the shadow.
Only one could define what remained when the lingering eclipse ended.
Kane sat back in his chair and allowed the race to begin.
</div>
<div style="margin-top:30px; text-align:center; border-top:1px solid #333; padding-top:20px; padding-bottom:35px;">
<p style="color:#aaa;">Observer mode gives all four Masters to the AI. You will watch rather than choose actions or targets.</p>
<span class="custom-link">[[Begin the observation.|Hub]]</span>
</div>
<h3 style="color:#9c27b0; margin-top:0;">CALDWELL — THE ARCHITECT · Vice: Will</h3>
<p style="color:#aaa; font-style:italic;">His weapon is Will: conquest chance scales with the target's weakness to Will.</p>
<p><strong style="color:#9c27b0;">Ultimate — Eternal Anchor (100% Resonance).</strong> Caldwell claims one subject a rival has genuinely invested in (a Nathan, Josh, or Jasper stage of 2 or higher on her). Excluded: girls he already owns at Stage 3, the current Kane reward girl, and any girl who has ever been a Kane quest target — Kane's Mark never fades. On execution:</p>
<ul style="margin:4px 0 10px; padding-left:22px;">
<li>Caldwell gains one stage (capped at 3), taking ownership only if the gain completes her (Stage 3);</li>
<li>every rival holding progress on her always loses one stage, with a 50% chance of losing a second;</li>
<li>Caldwell recovers +20 Resonance.</li>
</ul>
<p>The Anchor consumes his action for the day — it does not also perform an ordinary conquest.</p>
<p><strong style="color:#9c27b0;">Surveillance reach.</strong> The Midnight event <em>Mandatory Detention</em> exists only for Caldwell: the detained student becomes automatically findable by him for its duration.</p>
<p><strong style="color:#9c27b0;">Eclipse event — Directorate Mandate.</strong> While it runs, Caldwell automatically finds every student target on campus.</p>
<p><strong style="color:#9c27b0;">Mass Resonance variant.</strong> With captured Masters, his Mass Resonance places them in supervision, and individual group videos may screen a slave's clips instead of Caldwell's own.</p>
<p style="color:#666; font-size:0.8em;">All shared rules (turns, Keys, clashes, Kane, Eclipses) are in the TUTORIAL, sidebar.</p><h3 style="color:#ffff00; margin-top:0;">JASPER — THE CONFIDANT · Vice: Trust</h3>
<p style="color:#aaa; font-style:italic;">His weapon is Trust: conquest chance scales with the target's weakness to Trust.</p>
<p><strong style="color:#ffff00;">Ultimate — Eclipse Silence (100% Resonance).</strong> Jasper silences one active rival of his choice for <strong>two turns</strong>. A silenced Master cannot take the normal action while the timer lasts — those turns are lost entirely. Jasper can maintain only one silence at a time, and the target must be an active, currently un-silenced rival.</p>
<p><strong style="color:#ffff00;">Captured Masters.</strong> Holding at least one captured Master grants:</p>
<ul style="margin:4px 0 10px; padding-left:22px;">
<li><strong>+5</strong> to Jasper's score in every clash;</li>
<li>a <strong>40% chance</strong> to steal a second girl whenever he wins a Crushing Defeat (on top of the normal theft).</li>
</ul>
<p><strong style="color:#ffff00;">Serene Collective (eclipse theme).</strong> Every girl Jasper currently owns and is unshielded receives a free three-turn shield, and Jasper's own conquest rolls gain +10%.</p>
<p><strong style="color:#ffff00;">Eclipse event — Havenwood Bastion.</strong> Three girls of Jasper's choosing cannot be located by any other Master while the event runs.</p>
<p style="color:#666; font-size:0.8em;">All shared rules (turns, Keys, clashes, Kane, Eclipses) are in the TUTORIAL, sidebar.</p><h3 style="color:#00ffcc; margin-top:0;">NATHAN — THE LOVER · Vice: Love</h3>
<p style="color:#aaa; font-style:italic;">His weapon is Love: conquest chance scales with the target's weakness to Love.</p>
<p><strong style="color:#00ffcc;">Ultimate — Social Pandemic (100% Resonance).</strong> Lasts three of Nathan's turns. During it, every successful conquest <em>guarantees</em> its chain reaction whenever an eligible social friend exists — no probability roll. It is the only effect in the game that bypasses the Static Void's chain prohibition.</p>
<p><strong style="color:#00ffcc;">Interaction with Predator's Rush.</strong> If Josh's Rush is marking Nathan while Social Pandemic is active, an eligible conquest does not resolve as a silent theft: it becomes a special two-girl clash. Nathan and Josh contest both girls, and the clash winner advances on both.</p>
<p><strong style="color:#00ffcc;">Captured Masters.</strong> Nathan is the only Vice who gains <strong>+1 action per captured Master</strong> — the bonus stacks with each slave taken.</p>
<p><strong style="color:#00ffcc;">Shield of Love.</strong> Unlocked once Nathan holds at least one captured Master. Attacks against girls he owns are intercepted automatically: 40% chance on his owned fixed Keys, 25% on his owned Spare Keys. The shield also protects Nathan from the Crushing Defeat penalty when he is the losing defender.</p>
<p><strong style="color:#00ffcc;">Eclipse event — Empathic Web.</strong> While this event runs, Nathan's weakness multiplier gains <strong>+3</strong> whenever he targets a girl who is a social friend of a girl he fully owns.</p>
<p style="color:#666; font-size:0.8em;">All shared rules (turns, Keys, clashes, Kane, Eclipses) are in the TUTORIAL, sidebar.</p><h3 style="color:#ff33cc; margin-top:0;">JOSH — THE PREDATOR · Vice: Lust</h3>
<p style="color:#aaa; font-style:italic;">His weapon is Lust: conquest chance scales with the target's weakness to Lust.</p>
<p><strong style="color:#ff33cc;">Ultimate — Predator's Rush (100% Resonance).</strong> Josh marks one active rival for two of that rival's turns. Every eligible conquest the marked rival completes during that window is <em>stolen</em>:</p>
<ul style="margin:4px 0 10px; padding-left:22px;">
<li>Josh gains the stage and ownership; the rival does not.</li>
<li>Josh's scene replaces the rival's scene.</li>
<li>Any chain reaction the conquest generates is stolen as well.</li>
<li>Each girl can be mirrored only once per activation.</li>
<li>The Rush may steal at most <strong>two girls per marked rival's turn</strong> — a two-girl clash spends both steals at once.</li>
</ul>
<p>If Nathan's Social Pandemic is active, the theft instead becomes the special two-girl clash (see the Love guide).</p>
<p><strong style="color:#ff33cc;">Captured Masters — Path of Lust.</strong> Holding at least one captured Master <strong>doubles Josh's final conquest multiplier</strong>. The doubling is flat: further slaves do not increase it.</p>
<p><strong style="color:#ff33cc;">Carnal Fever (eclipse theme).</strong> Lust-weapon rolls — Josh's alone — receive +2 to the weakness multiplier, capped at ×5, and Josh automatically finds every student target (non-student staff are excluded).</p>
<p><strong style="color:#ff33cc;">Eclipse event — Apex Predation.</strong> When Josh steals a girl who is already owned, his personal stage jumps to the highest stage any rival had on her. The skipped tiers are shown in sequence afterward, but the action, gauge, ownership, and chain are calculated exactly once.</p>
<p><strong style="color:#ff33cc;">Mass Resonance variant.</strong> With a captured Master, Josh's Mass Resonance may gather the girls connected to that Master's former Keys and Spares.</p>
<p style="color:#666; font-size:0.8em;">All shared rules (turns, Keys, clashes, Kane, Eclipses) are in the TUTORIAL, sidebar.</p><<link "⌨ SHORTCUTS">>
<<script>>
Dialog.setup("Keyboard Shortcuts", "shortcuts-dialog");
Dialog.wiki(Story.get("Shortcuts").processText());
Dialog.open();
<</script>>
<</link>><h3 style="color:#00ffcc; margin-top:0;">KEYBOARD SHORTCUTS</h3>
<p style="color:#aaa; font-style:italic;">The game is fully playable with the mouse — these just make it faster.</p>
<div style="display:flex; flex-wrap:wrap; gap:8px 24px; margin-top:14px;">
<div style="flex:1 1 260px;">
<p style="color:#ffcc00; font-weight:bold; letter-spacing:2px; font-size:0.8em; margin-bottom:6px;">ACTIONS</p>
<p style="line-height:2;">
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #00ffcc; border-radius:5px; padding:1px 7px; color:#00ffcc; font-family:monospace; background:#071515;">1</span>
primary action — Continue, Watch, Next, End Turn, Observe, Claim, Target, Attack, Engage…<br>
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #00ffcc; border-radius:5px; padding:1px 7px; color:#00ffcc; font-family:monospace; background:#071515;">2</span>
second choice on choice screens<br>
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #00ffcc; border-radius:5px; padding:1px 7px; color:#00ffcc; font-family:monospace; background:#071515;">3</span>
third choice<br>
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #00ffcc; border-radius:5px; padding:1px 7px; color:#00ffcc; font-family:monospace; background:#071515;">4</span>
fourth choice<br>
<span style="color:#666; font-size:0.75em;">(2-4 work on compact choice screens and numbered lists — never on target grids)</span>
</p>
<p style="color:#ffcc00; font-weight:bold; letter-spacing:2px; font-size:0.8em; margin:14px 0 6px;">HISTORY</p>
<p style="line-height:2;">
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #888; border-radius:5px; padding:1px 7px; color:#ccc; font-family:monospace; background:#181818;">←</span>
/
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #888; border-radius:5px; padding:1px 7px; color:#ccc; font-family:monospace; background:#181818;">−</span>
step back through the story<br>
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #888; border-radius:5px; padding:1px 7px; color:#ccc; font-family:monospace; background:#181818;">→</span>
/
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #888; border-radius:5px; padding:1px 7px; color:#ccc; font-family:monospace; background:#181818;">+</span>
step forward again
</p>
</div>
<div style="flex:1 1 260px;">
<p style="color:#ffcc00; font-weight:bold; letter-spacing:2px; font-size:0.8em; margin-bottom:6px;">MENU KEYS</p>
<p style="line-height:2;">
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #ff66cc; border-radius:5px; padding:1px 7px; color:#ff66cc; font-family:monospace; background:#14060f;">B</span>
Board — the full campus map of influence<br>
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #ff66cc; border-radius:5px; padding:1px 7px; color:#ff66cc; font-family:monospace; background:#14060f;">C</span>
Bios — the character gallery<br>
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #ff66cc; border-radius:5px; padding:1px 7px; color:#ff66cc; font-family:monospace; background:#14060f;">T</span>
Tutorial — returns you where you were<br>
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #ff66cc; border-radius:5px; padding:1px 7px; color:#ff66cc; font-family:monospace; background:#14060f;">S</span>
Saves — save, load, autosaves
</p>
<p style="color:#ffcc00; font-weight:bold; letter-spacing:2px; font-size:0.8em; margin:14px 0 6px;">POP-UPS</p>
<p style="line-height:2;">
<span style="display:inline-block; min-width:38px; text-align:center; border:1px solid #ffaa00; border-radius:5px; padding:1px 7px; color:#ffaa00; font-family:monospace; background:#221100;">Esc</span>
close any open pop-up window
</p>
</div>
</div>
<p style="color:#666; font-size:0.75em; margin-top:16px; border-top:1px solid #222; padding-top:8px;">Shortcuts never fire while you are typing, while a pop-up is open (except Esc), or with Ctrl/Alt held. The menu keys pause during endings, the Gallery, and multi-scene queues.</p><h1 style="color:#00ffcc; margin:0 0 2px 0;">DEBUG - Changed Scenes (awaiting your approval)</h1>
<p style="color:#888; font-size:0.8em; margin:0 0 6px 0;">Nothing pending - every changed scene has been approved. This hub is currently not linked anywhere: the DEBUG link was removed from the sidebar (StoryCaption) once the list emptied, per the author. If a future batch needs review again, re-add one line in StoryCaption: [[DEBUG|Debug_Scenes]].</p>
<<silently>>
/* Batch 70: ALL CHANGED SCENES APPROVED - list emptied. Final four:
Caldwell x Caprice (b67 clothing-timing fix, pasted + approved),
Josh x Savannah (outfit fix), Nathan x Maya (one-room fix),
Nathan x Savannah (FLAG settled KEEP by approval - the 2-2
cumshot beat stays as written). Zero flags remain project-wide.
Format: { label, passage, master, girl }. */
<<set _scenes to [
]>>
<</silently>>
<div style="font-family:monospace; font-size:0.82em; line-height:1.7; column-width:290px; column-gap:16px;">
<<for _sc range _scenes>>
<div style="margin:0 0 1px 0; break-inside:avoid;"><strong style="color:#fff;"><<print _sc.label>></strong>
<<for _tier to 1; _tier lte 3; _tier++>>
<<set _lbl to "L" + _tier>> <<capture _sc _tier>><<link _lbl>><<set _girl to $roster.find(c => c.id === _sc.girl)>><<set _girl.stages[_sc.master] to _tier>><<set $playerID to _sc.master>><<set $activeTurn to _sc.master>><<set $targetNPC to _girl>><<set $chainTarget to null>><<set $actionsTaken to 0>><<set $extraActions to { nathan: 0, josh: 0, jasper: 0, caldwell: 0 }>><<set $outcome to "">><<goto _sc.passage>><</link>><</capture>>
<</for>>
</div>
<</for>>
</div>
<br>[[Back to Hub|Hub]]